我需要帮助使用PDO更新这个PHP Ajax更新mysql数据库。如果用户选中该复选框,我想更新数据库。以下是我的代码:
JS:
$('input[name=product_new]').click(function(){
var chkbox_id = $(this).attr('alt');
var chkbox_selected = $(this).is(':checked');
if(chkbox_selected == true)
{
chkbox_selected = "checked";
}
else
{
chkbox_selected = "uncheck";
}
$.post({
url: "../products_listing.php",
type: "POST",
data: {product_id: chkbox_id, product_new: chkbox_selected},
cache: false,
success: function(){}
});
});
使用PDO更新数据库的PHP页面:
$id = $_POST['product_id'];
$product_new = $_POST['product_new'];
if(isset($_POST['product_new']))
{
try
{
$query = "UPDATE productinfo SET new_arrival=? WHERE id=?";
$stmt_new_chkbox = $conn->prepare($query);
$stmt_new_chkbox->bindParam(1, $product_new, PDO::PARAM_STR);
$stmt_new_chkbox->bindParam(2, $id, PDO::PARAM_INT);
$stmt_new_chkbox->execute();
}
catch(PDOException $e)
{
echo 'ERROR: ' . $e->getMessage();
}
}
当我使用mysql时它工作但现在我已将其更改为使用PDO,它将不再起作用。我找不到哪里出错了。先谢谢你们。
以下是mysql _:
中的旧代码$id = mysql_real_escape_string($_POST['product_id']);
$product_new = mysql_real_escape_string($_POST['product_new']);
if(isset($_POST['product_new']))
{
$upt_new=mysql_query("update products_list set new_arrival='$product_new' where id='$id'");
}
确定!我知道已经有什么问题了。该死的目录路径。我拿出了../它有效!虽然有点奇怪。
因为我的js文件在JS文件夹中,而products_listing.php在js文件夹之外。它不应该是../products_listing.php?
任何人都可以告诉我它为什么不能正常工作吗?
先谢谢你们!
答案 0 :(得分:0)
将您的任务分为两部分:AJAX部分和PDO部分。
首先确保您的PDO部分运行良好。创建一个模拟$ _POST数组,然后开始使用PDO直接调用此脚本,而不使用AJAX。如果出现问题,请在这里提问。然后,当你恢复工作时,以同样的方式转移到AJAX部分 - 首先,没有PDO,只需将数据发送到服务器并验证它是否正确。
一次解决2个问题会让事情变得更加艰难。始终将您的任务分成不同的部分并逐一解决。