AJAX数据库更新

时间:2015-01-17 21:06:15

标签: javascript ajax database

这是我的第一次ajax尝试。我想将id变量传递给ajax函数并更新我的数据库。当我运行此代码时,一切都很好。警报中的ID正确但我的数据库未更新。请告诉我我的代码有什么问题。

我的api.php:

<?php 
include 'config.php';
$page_id =$_POST['page_id'];                        
$result = mysql_query("SELECT State FROM alarm WHERE ID_Alarm = $page_id ");

if($result==Off){
$result = mysql_query("UPDATE alarm SET State = On WHERE ID_Alarm = $page_id");  
}else{
$result = mysql_query("UPDATE alarm SET State = Off WHERE ID_Alarm = $page_id");
                        }
    ?>

我的js函数与ajax:

    function changeImage(e) {

    $.ajax({
          type: "POST",
          url: "web/api.php",

          data:"page_id="+e.id,
          success: function(data) 
          {
              alert(e.id);

          }, error: function()
          {
              alert("something went wrong");
          }
       });

                }

HTML:

<div id=\"$i\" class=\"alarmon\" onclick=\"changeImage(this)\"> </div>

3 个答案:

答案 0 :(得分:0)

我会按如下方式更新您的PHP文件:

更新:尝试用单引号括起On和Off

<?php 
include 'config.php';
$page_id =$_POST['page_id'];                        
$result = mysql_query("SELECT State FROM alarm WHERE ID_Alarm = $page_id ");

$state = mysql_result($result, 0);

if($state == "Off"){
  $result = mysql_query("UPDATE alarm SET State = 'On' WHERE ID_Alarm = $page_id");  
}
else{
  $result = mysql_query("UPDATE alarm SET State = 'Off' WHERE ID_Alarm = $page_id");
}
?>

我看到的第一个错误是Off不是常量,因此必须用双引号或单引号括起来。

$ result也是资源而不是字符串。

我希望这会有所帮助。

答案 1 :(得分:0)

您不需要SELECTIF。您可以在一个查询中更新表:

mysql_query("UPDATE alarm 
             SET State = IF(State = 'On', 'Off', 'On')
             WHERE ID_Alarm = $page_id");

答案 2 :(得分:0)

将$ page_id包含在这样的单引号中&#39; $ page_id&#39;。您的准则如下

$result = mysql_query("UPDATE alarm SET State = On WHERE ID_Alarm = '$page_id'");

现在运行代码Id将保存到数据库。