我正在使用对AJAX的调用来更新表中的值,然后我在查询中使用该表来查找表中的数据以进行输出。数据在表中根据需要进行更新,但在AJAX更新表后不在查询输出中进行更新。
这是我的工作:
关于index.php的AJAX
<script type="text/javascript">
$(function() {
$(".accept").click(function(){
var element = $(this);
var del_id = $(this).attr('id');
var info = 'id=' + del_id;
$.ajax({
type: "POST",
url: "accept.php",
data: info,
success: function(){}
});
$(this).parents(".show").animate({ backgroundColor: "#003" }, "slow")
.animate({ opacity: "hide" }, "slow");
});
});
</script>
它将数据发送到accept.php,后者使用数据更新表:
accept.php
include('db.php');
$id = $_POST['id'] ;
$name = $_POST['order_id'] ;
$sql = "UPDATE mgap_ska SET mgap_status = '1' WHERE mgap_ska_id = '".$id."' AND mgap_ska_report_category = '".$name."';";
$stmt = $pdo->prepare($sql);
$stmt->execute(array(
':id' => '$id',
':name' => '$name'
));
然后我在表中查询更新的信息:
"SELECT SUM(mgap_ska_growth) AS total FROM mgap_ska WHERE mgap_status = 1 ";
&#39; mgap_ska_growth&#39;是一个充满美元价值的列,以及所有相关的&#39; mgap_status&#39;值设置为&#39; 0&#39;默认情况下。 AJAX从&#39; 0&#39;更新行值。到&#39; 1&#39;并且查询使用mgap_status&#39; 1&#39;来查找所有值。总数和总和。
SUM正在运行,但只有一次进入网站。 AJAX运行后查询输出不会更新,即使表中的值按要求uodating。
我错过了什么?
答案 0 :(得分:1)
您没有在javascript中设置order_id
。
$(function() {
$(".accept").click(function(){
var element = $(this);
var del_id = $(this).attr('id');
var order_id = //something collect order_id
var info = 'id=' + del_id + '&order_id=' + /*order_id value*/;
$.ajax({
type: "POST",
url: "accept.php",
data: info,
success: function(){}
});
$(this).parents(".show").animate({ backgroundColor: "#003" }, "slow")
.animate({ opacity: "hide" }, "slow");
});
});
因为您在查询中使用了AND
,而您没有设置 $_POST['order_id']
,然后 $name
,您的查询将始终返回false ...
我觉得你应该重新检查一下这个部分:
$sql = "UPDATE mgap_ska SET mgap_status = '1' WHERE mgap_ska_id = '".$id."' AND mgap_ska_report_category = '".$name."';";
$stmt = $pdo->prepare($sql);
$stmt->execute(array(
':id' => '$id',
':name' => '$name'
));
<强> try this type :
强>
$sql = "UPDATE mgap_ska SET mgap_status = '1' WHERE mgap_ska_id = :id AND mgap_ska_report_category = :name;";
$stmt = $pdo->prepare($sql);
$stmt->execute(array(
':id' => $id,
':name' => $name
));