我有这个问题,我有多个字段通过AJAX调用更新数据库。 AJAX调用如下所示:
$(".fresheditable").fresheditor("save", function (id, parsedHtml) {
$.ajax({
url: 'save.php',
type: 'POST',
data: {
id: id,
parsedHtml: parsedHtml
}
});
});
ID值根据正在编辑的元素而变化。问题是何时将更新发送到save.php
文档。如何仅使用特定ID运行更新?
请参阅我的save.php:
if($_POST['id']='link')
{
$link = $_POST['parsedHtml']; //get posted data
// query
$sql = "UPDATE buttons SET linkname=? WHERE id=?";
$q = $conn->prepare($sql);
if ($q->execute(array($link,$_SESSION['button'])))
{
echo 1;
}
}
//The next if-statement could look like this:
if($_POST['id']='contactperson')
{
$contactperson = $_POST['parsedHtml']; //get posted data
// query
$sql = "UPDATE buttons SET contactperson=? WHERE id=?";
$q = $conn->prepare($sql);
if ($q->execute(array($contactperson,$_SESSION['button'])))
{
echo 1;
}
}
如果向save.php
发送了多个ID link
和contactperson
,则if-statements为true且更新设置相同的值,因为parsedHtml
变量
我可以在save.php
中做些什么可以阻止这种情况吗?不知何故,我需要将正确的parsedHtml
与相应的id
相关联。
答案 0 :(得分:2)
PHP(以及Javascript)中的比较运算符是==
而不是=
if($_POST["id"]=="link")
答案 1 :(得分:1)
是因为你在你的IF测试中使用单个等号,当一个值存在时,它会分配并返回true吗?不是双等于比较?
E.g。
if($_POST['id']=='link')
不
if($_POST['id']='link')
答案 2 :(得分:0)
您可以使用的一件事是数据属性,我的意思是
<span item-data="some_id">data</span>
现在您可以在jquery中选择要更新的html中的特定项目数据。
答案 3 :(得分:-1)
使用else-if结构。
if($_POST['id']='link') {
}
else if($_POST['id']='contactperson') {
}