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:
aquí está mi función de ajax
después de hacer clic en conseguir esta imagen
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, 7 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 archivostock-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 = "UPDATE
tblproductSET
pstock= ?,
purchaseprice` = ? WHERE pid = ?"; $update = $pdo->prepare($sql); $result = $update->execute([$newstock, $newPrice, $id]); ...
javascriptFunción de Ajax:
... $.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