AJAX 数据库更新
AJAX database update
这是我第一次 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>
我会按如下方式更新您的 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 将是一个资源而不是字符串。
希望对您有所帮助。
您不需要 SELECT
和 IF
。您可以在一个查询中更新 table:
mysql_query("UPDATE alarm
SET State = IF(State = 'On', 'Off', 'On')
WHERE ID_Alarm = $page_id");
将 $page_id 括在单引号中,例如 '$page_id'。您的代码如下
$result = mysql_query("UPDATE alarm SET State = On WHERE ID_Alarm = '$page_id'");
现在运行代码ID将保存到数据库。
这是我第一次 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>
我会按如下方式更新您的 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 将是一个资源而不是字符串。
希望对您有所帮助。
您不需要 SELECT
和 IF
。您可以在一个查询中更新 table:
mysql_query("UPDATE alarm
SET State = IF(State = 'On', 'Off', 'On')
WHERE ID_Alarm = $page_id");
将 $page_id 括在单引号中,例如 '$page_id'。您的代码如下
$result = mysql_query("UPDATE alarm SET State = On WHERE ID_Alarm = '$page_id'");
现在运行代码ID将保存到数据库。