0

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;
    }
}

複数の ID がsave.phpsaylinkに送信され、contactperson両方の if ステートメントが true であり、更新によりparsedHtml変数が同じ値に設定される場合。

save.phpこれを防ぐために私にできることはありますか?どういうわけか、正しいparsedHtmlを対応するに関連付ける必要がありますid

4

4 に答える 4

2

PHP(およびJavascript)の比較演算子はそうでは==ありません=

if($_POST["id"]=="link")
于 2012-10-12T09:37:52.610 に答える
1

値が存在すると true を割り当てて返す IF テストで単一の equals を使用しているためですか? 比較のために二重に等しいではありませんか?

例えば

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

いいえ

if($_POST['id']='link') 
于 2012-10-12T09:40:40.243 に答える
0

使用できるものの1つは、データ属性です。

<span item-data="some_id">data</span>これで、jqueryで、更新するhtmlの特定のアイテムデータを選択できます。

于 2012-10-12T09:26:06.970 に答える
-1

else-if 構造を使用します。

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

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

}
于 2012-10-12T09:24:12.573 に答える