在AJAX之后查询不更新

时间:2014-05-16 01:18:31

标签: php ajax

我正在使用对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。

我错过了什么?

1 个答案:

答案 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
));