Haga clic en la función de bootstrap modal en php no trabajando

Estoy trabajando en una aplicación web php que utiliza un bootstrap modal. cuando haga clic en un botón, el modal se muestra pero su función de envío no está funcionando. No sé lo que estoy haciendo mal pero debajo está mi código.

**viewproduct.php code: **

-----------------------ADD STOCK MODAL-----------------------------------

----------------------------------------------------------------------------

Para llamar al modal uso esto en **viewproduct. Código de php: **

div>
  

Al hacer clic en la imagen muestra la imagen siguiente: before click to display modal

aquí está mi función de ajax

 

después de hacer clic en conseguir esta imagen clicking on stock-in button after entering value no error is displayed and nothing happens

haciendo clic en el botón de entrada después de introducir el valor no se muestra ningún error y nada sucede. No sé qué estoy haciendo mal.

aquí está el código stock-in.php

php

include_once'connectdb.php';

if($_SESSION['useremail']=="" OR $_SESSION['role']=="Admin"){
    header('location:index.php');
}
if(isset($_POST['stock_up'])){
    $stockup=(int)$_POST['stock_up'];
    $newPrice=(int)$_POST['cost'];
    $id=$_POST['id'];
    $oldstock=(int)$_POST['oldstock'];


            $new_stock = $oldstock + $stockup;

                $sql="UPDATE `tbl_product` SET `pstock` = ?, `purchaseprice` = ? WHERE  pid= ? ";
                    $update=$pdo-prepare($sql);
                    $update->execute([$new_stock, $newPrice, $id]);

            if($result){
               echo'Stock updated!';
            }else{
              echo'Error in updating stock';  
            }
}
?>

Le agradeceré su ayuda. Gracias.

Pregunta hecha hace 3 años, 5 meses, 1 días - Por logiclinguist


3 Respuestas:

  • Cambié el código de

    $(document).ready(function() {
            $('.btn_stockin').click(function() {
    

    a

    $(document).ready(function() {
            $('#btn_stockin').click(function() {
    

    y funcionó bien.

    Respondida el Dec 16, 2020 a las 11:49 - por cyberjedi

    Votos positivos: 0 | Votos negativos: 0

  • El problema en tu código parece estar en la parametrización de la consulta SQL en stock-in.php. Tienes un pequeño error en la parte de preparación de la consulta y la ejecución de la misma. Aquí te dejo una corrección para ese fragmento de código:

    Reemplaza esta sección de código en stock-in.php:

    php
    $update=$pdo-prepare($sql);
    $update->execute([$new_stock, $newPrice, $id]);
    

    Por esta:

    php
    $update = $pdo->prepare($sql);
    $update->execute([$new_stock, $newPrice, $id]);
    

    Además, es una buena práctica validar la variable $_SESSION['useremail'] y $_SESSION['role'] antes de utilizarlas en tu script. Puedes agregar algo como esto al inicio del archivo stock-in.php:

    php
    session_start();
    
    include_once 'connectdb.php';
    
    if(!isset($_SESSION['useremail']) || $_SESSION['useremail'] == "" || $_SESSION['role'] == "Admin"){
        header('Location: index.php');
        exit;
    }
    

    Con estas correcciones, deberías poder ejecutar la actualización del stock correctamente después de hacer clic en el botón de "Stock-in". ¡Espero que esta solución sea de ayuda! ¡Déjame saber si tienes alguna otra pregunta!

    Respondida el Dec 17, 2020 a las 11:49 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Problema:

    El botón de envío del modal de Bootstrap no funciona y no se realiza la acción de stock.

    Solución:

    1. Botón de envío:

    El botón de envío dentro del modal no se ha identificado correctamente. Agrega el atributo data-target al botón de envío para vincularlo con el ID del modal:

    html
    

    2. Prevención de envío de formulario:

    Estás utilizando event.preventDefault() en la función de clic del botón, lo que impide que el formulario se envíe. Elimina esta línea para permitir que se envíe el formulario:

    javascript
    event.preventDefault();
    

    3. Datos del formulario:

    Verifica que los datos del formulario se pasen correctamente a la función de Ajax. Asegúrate de que los nombres de los campos del formulario coincidan con los nombres de los parámetros en la función de Ajax:

    javascript
    var newStock = $('txt_addstock').val();var newPrice = $('txt_addprice').val();

    4. Consulta SQL:

    En el script de PHP stock-in.php, actualiza la consulta SQL para incluir el nombre de la tabla correcta y los marcadores de posición correctos para los valores:

    php $sql = "UPDATE `tbl_product` SET `pstock` = ?, `purchaseprice` = ? WHERE pid = ?";

    5. Ejecución de la consulta:

    Asegúrate de ejecutar correctamente la consulta preparada utilizando $update->execute() y manejar cualquier error potencial.

    Código actualizado:

    viewproduct.php:

    html
    ...
    ...
    

    stock-in.php:

    ``php ... $sql = "UPDATEtblproductSETpstock= ?,purchaseprice` = ? WHERE pid = ?"; $update = $pdo->prepare($sql); $result = $update->execute([$newstock, $newPrice, $id]); ...

    
    
    Función de Ajax:
    
    
    javascript

    ... $.ajax({ method: 'POST', url: 'stock-in.php', data: { stock_up: newStock, cost: newPrice, id: pid; ?>, oldstock: pstock; ?> }, success: function(data) { swal("Stock actualizado", "El stock se actualizó correctamente", "success"); } }); ... ```

    Respondida el Dec 17, 2020 a las 11:55 - por Gemini

    Votos positivos: 0 | Votos negativos: 0