2012-10-12 91 views
0

我有這個問題,我有多個字段,通過AJAX調用更新數據庫。 AJAX調用如下所示:通過AJAX/jQuery保存到數據庫,發送兩個變量

$(".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.phplinkcontactperson兩個if語句是真實和更新設置相同的值,因爲parsedHtml變量。

有什麼我可以做的save.php可以防止這種情況嗎?不知何故,我需要將正確的parsedHtml與相應的id相關聯。

+1

如何的'id'可以在同一時間'contactperson'和'link'價值? –

+0

我唯一的想法是腳本發送的值與正在編輯的元素數量一樣多。 –

+0

無關緊要,每次編輯元素時都會發送新的請求。 –

回答

2

在PHP(以及在Javascript)進行比較,運營商是==,而不是=

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

這解決了問題,我認爲午餐的時間:) –

-1

使用else-if結構。您可以使用

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

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

} 
+0

問題在於這兩種情況都是如此,這是事實。該腳本爲每個可編輯的項目發送一次ID –

0

一件事是數據屬性我的意思是

<span item-data="some_id">data</span>現在你可以在jQuery的選擇,從你的HTML特定項目數據進行更新。

1

是不是因爲你用你的IF測試單等號,其分配和數值返回true存在?不是雙等於比較?

E.g.

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

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