PDOを使用してmysqlデータベースを更新するこのPHP Ajaxで助けが必要です。ユーザーがチェックボックスをオンにすると、データベースを更新したかったのです。以下は私のコードです:
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'");
}
Ok!私はすでに何が悪いのか知っています。いまいましいディレクトリパス。私は../を取り出しました、そしてそれはうまくいきます!ちょっと変だけど。
私のjsファイルはJSフォルダーにあり、products_listing.phpはjsフォルダーの外にあるためです。../products_listing.php のはずではありませんか?
なぜそれが機能しないのか、誰にでも教えてもらえますか?
よろしくお願いします!