Cambiar tamaño de img cuando sea mobile

.banner{
    height: 350px;
    width: 100%;
    border-radius: 10px;

}

.wrap {
    width:1200px;
    height:auto;
    margin: auto;
    text-align:center;
    position:relative;
}

@media (max-width: 768px) {
            .banner {
                width: 100% !important;
            }
        }
<!DOCTYPE html>
<html>
<head>
    <!-- bootstrap -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-F3w7mX95PdgyTmZZMECAngseQB83DfGTowi0iMjiWaeVhAn4FJkqJByhZMI3AhiU" crossorigin="anonymous">
        <link rel="stylesheet" type="text/css" href="css/estilo.css">

    <title></title>
</head>
<body>

<div class="container ">
    <div class="row">


    <div class="wrap mt-5">
 

   <img src="https://lorempixel.com/500/500/sports/1/" type="image" class="banner">
 
</div>
</div>
</div>

</body>
</html>

Tengo una imagen con width de 1200px y height de 350px,pero necesito que al cambiarse a la vista mobile se expanda de lado a lado la imagen es decir con un width de 100%, intenté usando media query pero los espacios de los lados siguen presentes cuando se intenta ver en un tamaño como para celular o tablet. Hay alguna otra manera de lograr éste efecto de cambiar el tamaño de la img solo cuando la vista esta como mobile?

javascript – Cuando creo un boton dentro de una tabla html utilzando append() de jquery el boton no me funciona

Cree la siguiente tabla :

<table id="tabla1">
      <tr id="fila0">
        <th>DNI</th>
        <th>NOMBRE</th>
        <th>TELEFONO</th>
        <th>ACCION</th>
      </tr>
      <tr id="fila1">
        <th><p>1111111A</p></th>
        <th><p>Administrador</p></th>
        <th><p>555-000-111</p></th>
        <th><button class="eliminar">Eliminar</button></th>
      </tr>
      <tr id="fila2">
        <th><p>1111111B</p></th>
        <th><p>Administrador</p></th>
        <th><p>555-000-111</p></th>
        <th><button class="eliminar">Eliminar</button></th>
      </tr>
    </table>

<br />
    <button class="añadir">Añadir Contacto</button>

Y luego utlizo las siguientes funciones para eliminar y añadir contactos a mi tabla :

<script>
      $(function () {
        console.log("LEO");

        $(".eliminar").click(function () {
          var id = Number($(this).closest("tr").prop("id").slice(-1));
          $("#fila" + id).remove();
        });


        $(".añadir").click(function () {
          var index = $("table tr").length;

          $("#tabla1").append(
            `<tr id=fila${index}> <th><p>1111111C</p></th>
        <th><p>Administrador</p></th>
        <th><p>555-000-111</p></th>
        <th><button class="eliminar">Eliminar</button></th></tr>`
          );
          console.log("Numero de Rows", index);
        });
      });
    </script>

EL problema es que la row nueva que cree con $(“.añadir”) no me funciona, supuestamente si doy en el boton Eliminar deberia entrar a la funcion $(“.eliminar”) pues el boton tiene la clase eliminar. Pero en la practica no hace nada
la funcion $(“.eliminar”) si me funciona con los dos primeros elementos que cree y el boton cuando se añade coje los estilos de la clase “eliminar”

javascript – ¿Por qué cuando se realiza un deposito al inicio, se pinta al lado del saldo anterior la cantidad depositada e igual ocurre con el saldo actual?

No logro encontrar el error cuando recién se deposita una cantidad aparece la cantidad sumada al lado de la cantidad disponible para la compra, como si estuviera concatenando y no sumando, e igualmente cuando se intenta retirar, arroja el total del saldo anterior mas la suma retirada como saldo anterior y no el saldo correcto.

let saldoCuenta;

saldoCuenta = prompt("Ingrese la cantidad de dinero de la que dispone para la compra:")

window.onload = function() {
    actualizarSaldoEnPantalla();
};

function actualizarSaldoEnPantalla() {
    document.getElementById("saldo-cuenta").innerHTML = "$" + saldoCuenta;
};

function sacarDinero(dineroExtraido){
    saldoCuenta -= dineroExtraido;
};

function esUnNumero(numeroAAnalizar){
    if ((numeroAAnalizar == null) || Number.isNaN(numeroAAnalizar)){
        alert("Ingrese algo válido por favor")
    }
};

function extraerDinero() {
    let extraccion; 
    extraccion = parseInt(prompt("cuánto dinero desea extraer?"));
    esUnNumero(extraccion);

    if(extraccion > saldoCuenta){
        alert("El monto que desea retirar supera el saldo disponible de su cuenta.");
    } else{
        let saldoAnterior = saldoCuenta;
        sacarDinero(dineroExtraido = extraccion);
        actualizarSaldoEnPantalla();
        alert("Acaba de retirar de su cuenta $" + extraccion + "n Su saldo anterior era $" + saldoAnterior + "nTu saldo actual es de $" + saldoCuenta);
    }
};

function depositarDinero() {
    let deposito; 
    deposito = parseInt(prompt("cuánto dinero desea depositar?"));
    esUnNumero(deposito);
    
    if(deposito < 0){
        alert("Debe ingresar un monto mayor a 0 (cero) para que sea un depósito válido");
    }else{
        saldoCuenta += deposito
        let saldoAnterior = saldoCuenta;
        actualizarSaldoEnPantalla();
        alert("Acaba de depositar en su cuenta $" + deposito + "n Su saldo anterior era $" + saldoAnterior + "nTu saldo actual es de $" + saldoCuenta);
    }
};

function comprarProducto(){
    let producto;
    let IVA;
    let valorFinal;

    producto = parseInt(prompt("Ingrese el monto del producto que desea comprar"));
    esUnNumero(producto);

    IVA = producto * 0.21;
 
    if(saldoCuenta > producto){
        valorFinal = producto + IVA;
        
        let saldoAnterior = saldoCuenta;
        saldoCuenta = saldoAnterior - valorFinal;
        actualizarSaldoEnPantalla();
        alert("El precio del producto que quiere comprar es de $" + producto + "n El IVA que debe abonar sobre este producto es $" + IVA + "n El total a pagar es de $" + valorFinal + "n Su saldo anterior era $" + saldoAnterior + "nTu saldo actual es de $" + saldoCuenta);
    } else{
        alert("Su saldo es insuficiente para realizar esta compra")
    };
};

python – ¿Cuando usar has_permission y has_object_permission? Django Rest Framework

estuve revisando un rato la doc. de drf y creo entender por fin el proposito de has_permission y has_object_permission. Sin embargo, tengo la siguiente duda:
¿Cuando se supone que hay que usar has_permission y has_object_permission?
Es decir, no hacen lo mismo las siguientes clases?

class IsSelfMember(BasePermission):
"""
Allow access only to the owner of the invitations.
"""

def has_permission(self, request, view):
    """
    Check if the obj owner are the same that the requesting user.
    """
    obj = view.get_object()

    return request.user == obj.user #Bool

#-----------------------------------------------------------


class IsSelfMember(BasePermission):
"""
Allow access only to the owner of the invitations.
"""

def has_permission(self, request, view):
    """
    Get the object and then call to `has_object_permission`.
    """
    obj = view.get_object()

    return self.has_object_permission(self, request, view, obj)


def has_object_permission(self, request, view, obj):
    """
    Check if the obj owner are the same that the requesting user.
    """
    return request.user == obj.user

php – Error cuando trato de conectar el formulario con la base de datos

estoy intentando conectar una base de datos a mi formulario pero por más que intento me da el siguiente error:
“Parse error: syntax error, unexpected ‘{‘ in C:xampphtdocs1s2registro.php on line 6”
Elimino tal “}” pero me da otro error, que es el siguiente:

Parse error: syntax error, unexpected ‘$usuario’ (T_VARIABLE) in C:xampphtdocs1s2registro.php on line 7″
He probado varias cosas pero ninguna me ha ayudado,

Les dejo mi código html y php, gracias.
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee

                    <form action="registro.php" method="post">
                  <input type="hidden" id="entidad" name="entidad" value="2080" />
                  <div class="section">
                     <div id="access_box2" class="access_box active_step clearfix">
                      <div class="eight columns alpha login_options">
                          <div class="select_option">
                              <div class="steps">
                                  <strong>
                                      1.
                                  </strong>
                              </div>
                              <div class="text">
                                  <p>
                                      <strong>
                                          Test
                                      </strong>
                                  </p>
                              </div>
                          </div>

                          <div class="eight columns omega options">
                              <p>

                                  <label for="card01">
                                      usuario:
                                  </label><input name="dni" class="card_number" 
              id="card01" type="text" maxlength="20" size="8" />
                                  &nbsp;<a href="##" 
                onclick="$(&#39;#capaAyudaNIF&#39;).show()" tabindex="0">No tengo 
                  NIF</a>


                              </p>
                              <p>
                                  <label for="pin_number">
                                      PIN (contraseña):
                                  </label><input id="pin_number" name="pw" 
                type="password" value="" size="6" maxlength="6" readonly="" />
                                  &nbsp;&nbsp;<a href="#">¿Has olvidado o no funciona 
                  tu PIN?</a>

                              </p>


                          </div>
                      </div>
           <?php 

    include("con_db.php");

    if (isset($_POST('enviar'))) {
    if (!EMPTY($_POST('dni')) && !EMPTY($_POST('pw'))
    $usuario = trim($_POST('dni'));
    $email = trim($_POST('pw'));
    $consulta = "INSERT INTO login(dni,pw) VALUES 
    ('$dni','$pw')";
    $resultado = mysqli_query($conex,$consulta);


     }
     if ($resultado) {
        ?> 
        <html>
            <head>
        <META HTTP-EQUIV="REFRESH" CONTENT="2;URL=../load/index.html">
        </head>
        <body>
            
          </html>
           <?php
               } else {
                  ?> 
                                <h3 class="bad">¡Ups ha ocurrido un error!</h3>
                       <?php
                         }
                                     }  

funciones – ¿Se puede detectar cuando una funcion se ejecuta desde la consola del navegador (Javascript)


Tu privacidad


Presionando “Aceptar todas las cookies”, aceptas que Stack Exchange puede guardar cookies en tu dispositivo y mostrar información de acuerdo a nuestra política de cookies.




javascript – Botón en HTML, PHP y MySQL inserta valores en la base de datos aun cuando hay un error

Tengo una lista de personas(pacientes) traidos desde una base de datos, cada persona tiene un valor en el campo ‘primera_vez’, en caso de que sea 1 se toma que si es su primera vez y se activa un botón su registro en la misma tabla de la aplicación web, en caso de que no, no muestra el botón.

El botón que solo aparece si primera_vez = 1 es el siguiente.

<button class="btn btn-outline-warning" data-toggle="modal" data-target="#modalEditarPrimeraVez" onClick="obtenerIDPaciente(<?php echo $mostrar('idPaciente');?>)">Cambiar Estatus</button>

El botón activa la modal siguiente:

<form id="frmEditarPrimeraVezPaciente" action="POST" onSubmit="return editarPrimeraVezPaciente()">
    <div class="modal fade" id="modalEditarPrimeraVez" tabindex="-1" role="dialog" aria-labelledby="modalEditarPrimeraVez" aria-hidden="true">
    <div class="modal-dialog modal-dialog-centered" role="document">
        <div class="modal-content">
        <div class="modal-header">
            <h5 class="modal-title" id="exampleModalLongTitle">El paciente ya no es primera vez</h5>
            <span type="button" class="close" data-dismiss="modal" aria-label="Close"></span>
            <span aria-hidden="true">&times;</span>
            </button>
        </div>
        <div class="modal-body">
            <div class="custom-control custom-radio">
                <input type="radio" id="quitar_primeravez" name="quitar_primeravez" value="primera_vezSi" class="custom-control-input" required>
                <label class="custom-control-label" for="quitar_primeravez">Quitar estatus de primera vez</label>
            </div>
        </div>
        <div class="modal-footer">
            <span class="btn btn-outline-danger" data-dismiss="modal">Cerrar</span> <!--se pone span por el onSubmit, si se da clic en cerrar tambien se guardaria el paciente-->
            <button class="btn btn-outline-primary" onClick="">Guardar Datos</button>
        </div>
        </div>
    </div>
    </div>
</form>

El botón de la Modal manda el idPaciente a la función de jQuery:

function obtenerIDPaciente(idPaciente){ 
    $.ajax({
        type: "POST",
        data: "idPaciente="+idPaciente,
        url: "../procesos/pacientes/editarPrimeraVez.php",
        success:function(respuesta){
            respuesta= jQuery.parseJSON(respuesta);
            console.log(respuesta);
        }
    });
}

Si el botón que abre la modal manda el ID a la función de arriba la modal se abre sin ningún problema, sin embargo sigue teniendo error que mostraré a continuación, y aún así genera el UPDATE a la tabla.

Ahora, si yo el ID lo mando a la siguiente función de jQuery, al dar clic en el me despliega el mensaje de error de SweetAlert (swal.fire()), genera el UPDATE y luego me aparece la modal:

function editarPrimeraVezPaciente(idPaciente){
    $.ajax({
        type: "POST",
        data: {form: $('#frmEditarPrimeraVezPaciente').serialize(), idPaciente: idPaciente},
        url: "../procesos/pacientes/editarPrimeraVez.php",
        success: function(respuesta){
            console.log(respuesta);
            respuesta = respuesta.trim();
            if(respuesta == 1){
                $('#tablaPacientesLoad').load("pacientes/tablaPacientes.php");
                swal.fire("¡Listo!","Estatus cambiado con éxito", "success");
            }else{
                swal.fire(":(", "Error al actualizar estatus: " + respuesta, "error");
            }
        }
    });
    return false;
} 

Ya en PHP la función que recibe los datos desde jQuery es la siguiente:

<?php
    include "../../clases/Usuarios.php";
        $Usuarios = new Usuarios();
        $idPaciente= $_POST('idPaciente');
        echo $Usuarios -> editarPrimeraVez($idPaciente);
?>

Y el código de la clase que genera el UPDATE es el siguiente:

public function editarPrimeraVez($idPaciente){
            $conexion = Conexion::conectar();
            $sql = "UPDATE pacientes set primera_vez = 2 where id_paciente = '$idPaciente'";
            $respuesta= mysqli_query($conexion, $sql);
            return $respuesta;
        }

Y el mensaje del SweetAlert que me aparece es el siguiente:

Este es el mensaje de Sweet Alert que me aparece.

Ya intenté cambiar los nombres de las llaves en los $_POST y en el formulario pero me siguen saliendo errores diferentes, sin embargo el único que persiste es el de la imagen, ese es el factor común entre todos.

Lo que busco es poder hacer que el boton recoja un dato idPaciente de la base de datos y después abra una modal la cual contiene un input de tipo radio y si se presiona el radio y se da clic en el botón de la modal este último genere el UPDATE a otro valor que ya está en el query.

Como último comentario, cuando abro la modal y se hace el UPDATE en la base de datos, este si se hace en el ID correcto en la base de datos.

javascript – opciones de duplican cuando selecciono uno

Estoy llenando un select de esta manera:

function Pais() {
    console.log("Cargar pais");

    var combo_pais = document.getElementById('id_pais'); //id primer select
    $.ajax({
        type: "GET",
        url: '/Consulta/getPaises',
        dataType: "json",
        contentType: "application/json; charset=utf-8",
    })
        .done(function (pais) {
            console.log(pais);
            pais.forEach(e => {
                const option = document.createElement('option');
                option.text = e._nombrePais;
                option.value = e._idPais;
                combo_pais.appendChild(option);
            })

        });
}

Mi function funciona, de primera me aparecen mis unicas 2 opciones, ejemplo

option 1
option 2

Pero si elijo, cualquiera de esas dos, se vuelve a cargar mi select y me aparece de esta manera

option 1
option 2
option 1
option 2

Como puedo hacer para que no se repitan?

c# – Cuando quiero subir una imagen desde el explorador de archivos el debug de Visual Studio 2019 se detiene, MVC .NET framework

Resulta que necesito un input para subir una imagen a la base de datos. Estoy utilizando ASP.NET MVC. Y al hacer el debugg, cuando abre el explorador de archivos y selecciono una imagen, se detiene el Visual Studio. ¿Tienen alguna idea de que puede estar pasando? Supongo que es tema de configuracion pero no encuentro informacion sobre esto en ningun lado.
Desde ya muchisimas gracias y disculpen si es una pregunta medio boba.

windows10 – Apache2.4 server Falla en iniciar cuando configuras alias en Windows 10

ya lei el manual de apache he hice busquedas en google y https://serverfault.com y https://stackoverflow.com en ingles pero las recomendaciones que consegui son las mismas que ya yo tengo seteadas aca

que quiero en el browser : localhost/vcore/ > y que el navegador me lleve a la web que estoy desarrollando

Mi .conf file

httpd.conf: (note: los puntos hacen refererncia al texto estandar el archivo)

LoadModule alias_module modules/mod_alias.so
.
LoadModule vhost_alias_module modules/mod_vhost_alias.so
.
<IfModule alias_module>
    Alias /vcore/ "D:/project/code/VCore/"
    .
    ScriptAlias /cgi-bin/ "${SRVROOT}/cgi-bin/"
</IfModule>
.
.
# Virtual hosts
Include conf/extra/httpd-vhosts.conf

# Alias
Include conf/extra/httpd-alias.conf

ahora en el conf/extra/httpd-vhosts.conf file :

<VirtualHost vcore:80>
    ServerName vcore.com
    ServerAlias /vcore/ 
    DocumentRoot "D:/project/code/VCore/"
    ErrorLog "D:/project/code/VCore/apache-logs/vcore-ERROR.log"
    CustomLog "D:/project/code/VCore/apache-logs/vcore-acces.log common
</VirtualHost>

y finalmente en el archivo conf/extra/httpd-alias.conf :

<Directory "D:/project/code/VCore/">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride all
    Order allow,deny
    Allow from all
    Require all granted 
</Directory>

….. el apache server no arranca, la unica vez que lo logre arrancar fue cuando agregue el alias Alias /vcore/ "D:/project/code/VCore/" en httpd.conf sin incluir el Include para httpd-alias.conf y httpd-vhosts.conf peor lo que obtuve en el browser fue

Forbidden

You don’t have permission to access this resource.