#php #ajax
#php #ajax
Вопрос:
Я пытаюсь получить значение из своей базы данных, а затем запустить обновление, используя всплывающее окно с предупреждением, но оно не работает. Появляется всплывающее предупреждение, и как только значение введено, оно отображает введенное, но не работающее значение. ниже приведен мой фактический ajax-код:
viewproduct.php
<script>
$(document).ready(function() {
$('.btnupdatestock').click(function() {
var id = $(this).attr("id");
//var new_stock = $(this).val();
swal("Add Stock:", {
content: "input",
})
.then((updateStock) => {
$.ajax({
type: 'POST',
url: 'stock-in.php',
data:{
stock_up: updateStock,
},
success: function(data){
swal(`Updated: ${updateStock}`);
},
error: function(data){
swal(`Error updating: ${updateStock}`);
}
});
});
});
});
</script>
вышеупомянутый метод был разработан для запуска sql в stock-in.php и код в stock-in.php находится ниже:
<?php
include_once'connectdb.php';
if($_SESSION['useremail']=="" OR $_SESSION['role']=="Admin"){
header('location:index.php');
}
$idd=$_GET['id'];
$select=$pdo->prepare("select * from tbl_product where pid=$idd");
$select->execute();
while($row=$select->fetch(PDO::FETCH_OBJ)){
$productName = $row['pname'];
$oldstock = $row['pstock'];
//$id=$_POST['uid'];
$stockup=$_POST['stock_up'];
alert('I clicked');
$new_stock = $oldstock $stockup;
$sql="UPDATE `tbl_product` SET `pstock` = ? WHERE pid= ? ";
$update=$pdo->prepare($sql);
$update->execute([$new_stock, $idd]);
if($result){
echo'Stock updated!';
}else{
echo'Error in updating stock';
}
}
?>
ниже приведено изображение моего пользовательского интерфейса, которое показывает всплывающее окно, но оно не обновляется.
Это то, что я намерен сделать: если пользователь нажимает на обновление и вводит значение, скажем, 50, он должен извлечь старый запас (база данных, скажем, 100) и добавить к новому запасу (введенное значение, скажем, 50), а затем обновить базу данных на 150. Я застрял здесь, и любая помощь будет оценена. Спасибо.
Комментарии:
1. Что такое вызов
alert
в середине PHP-кода? Кроме того, если вы делаетеfetch(PDO::FETCH_OBJ)
, не должно ли это быть$row->pname
вместо$row['pname']
?2. Привет, вы не передали
id
значение на серверную страницу.3. Я сделал, но это не было проблемой. спасибо за ваш ответ.
Ответ №1:
$(document).ready(function() {
$('.btnupdatestock').click(function() {
swal("Add Stock:", {
buttons: true,
closeModal: true,
content: "input",
}).then((updateStock) => {
if (updateStock === "") {
swal("You need to write something!");
return false
}else{
$.ajax({
type: 'POST',
url: 'stock-in.php',
data:{
stock_up: updateStock
<?php
echo ', id: '.$row->pid.' '
?>
<?php
echo ', oldstock: '.$row->pstock.' '
?>
},
success: function(data){swal(`Updated: ${updateStock}`);},
error: function(data){swal(`Error updating: ${updateStock}`);}
});
}
});
});
});
Основная проблема, с которой я столкнулся, заключалась в том, что я не сделал SQL-запрос глобальным в верхней части своей страницы, а затем применил '.$row->pid.'