首先,感谢您的阅读。这是我的代码
脚本/complete_backorder.php
<?php
if(!isset($_GET['order_id'])) {
exit();
} else {
$db = new PDO("CONNECTION INFO");
$order = $db->prepare("UPDATE `scs_order` SET `order_complete`= 1 WHERE `order_id` = :var");
$order->bindValue( ':var',$_GET['order_id'] );
if ( $order->execute() ) {
echo "DONE";
};
};
?>
js/tabs.js
/*
[#]===============================================================================[#]
MODAL: "complete_backorder_Modal"
USAGE: modal to confirm whether or not user want to complete a backorder.
[#]===============================================================================[#]
*/
$(function(){
$(" .remove_record ").click(function( event ){
event.preventDefault();
var rows = $(this).parent().parent().parent().parent().find("tr:last").index() + 1;
var order = $(this).attr("href");
var dataString = 'order_id='+order;
$( '#complete_backorder_Modal' ).modal({
keyboard: false,
backdrop: 'static'
});
$( '#complete_backorder_Modal #modal-yes' ).click(function(e){
$.ajax({
type: "POST",
url: "../scripts/complete_backorder.php",
data: dataString,
success: function(data){
alert("Settings has been updated successfully.");
}
});
});
});
});
所以我知道 PHP 代码正在工作,因为 IVE 一遍又一遍地手动测试它。 但是当我单击".remove_record"按钮时,模态显示,我单击模态中的是按钮,警报框显示它已成功,但是当我查看数据库时,没有任何变化。
有什么想法吗?
您的 SQL 永远不会运行,因为没有 $_GET 变量,您使用的是 $_POST 但即使你这样做了,你也没有正确地通过order_id。改变:
var postData = {'order_id ' : order}; // instead of var dataString = 'order_id='+order;
和
$.ajax({
type: "POST",
url: "../scripts/complete_backorder.php",
data: postData, // instead of dataString
success: function(data){
alert("Settings has been updated successfully.");
}
});
在 PHP 更改中:
if(!isset($_POST['order_id'])) { // Insetad of $_GET
和
$order->bindValue( ':var',$_POST['order_id'] );