通过AJAX / jQuery保存到数据库,发送两个变量

时间:2012-10-12 09:21:54

标签: php jquery ajax contenteditable

我有这个问题,我有多个字段通过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 linkcontactperson,则if-statements为true且更新设置相同的值,因为parsedHtml变量

我可以在save.php中做些什么可以阻止这种情况吗?不知何故,我需要将正确的parsedHtml与相应的id相关联。

4 个答案:

答案 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') {

}
相关问题