Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过AJAX/jQuery保存到数据库,发送两个变量_Php_Jquery_Ajax_Contenteditable - Fatal编程技术网

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

Php 通过AJAX/jQuery保存到数据库,发送两个变量,php,jquery,ajax,contenteditable,Php,Jquery,Ajax,Contenteditable,我有一个问题,我有多个字段通过AJAX调用更新数据库。AJAX调用如下所示: $(".fresheditable").fresheditor("save", function (id, parsedHtml) { $.ajax({ url: 'save.php', type: 'POST', data: { id: id, parsedHtml: parsedHtml }

我有一个问题,我有多个字段通过AJAX调用更新数据库。AJAX调用如下所示:

$(".fresheditable").fresheditor("save", function (id, parsedHtml) {
    $.ajax({
        url: 'save.php',
        type: 'POST',
        data: {
            id: id,
            parsedHtml: parsedHtml
        }
    });
});
ID值根据正在编辑的元素而变化。问题是当更新被发送到
save.php
文档时。如何仅使用特定ID运行更新

请参阅my 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语句都为true,并且更新设置了相同的值,因为
parsedHtml
变量

save.php
中我能做些什么来防止这种情况?不知何故,我需要将正确的
parsedHtml
与相应的
id

Use else if结构相关联

if($_POST['id']='link') {

}
else if($_POST['id']='contactperson') {

}

你们可以使用的一件事就是数据属性


data
现在,您可以在jquery中选择要更新的html中的特定项目数据

PHP(以及Javascript)中的比较运算符是
=
,而不是
=

if($_POST["id"]=="link")

是不是因为在IF测试中使用了单个equals,它在值存在时赋值并返回true?不是两个相等的比较

例如

不是


如何将
id
的值同时设置为
contactperson
link
?我唯一的想法是,脚本发送的值是正在编辑的元素数的倍。没关系,每次编辑一个元素时,都会发送一个新的请求。这两种情况都存在问题,这是真的。脚本会为每个可编辑的项目发送一次ID
if($_POST['id']=='link') 
if($_POST['id']='link')