2010-08-04 66 views
0

我有一個提交表單。 我想如果有人提交相同的數據可以顯示jquery對話框「這個數據已經存在!你確定要輸入嗎?」 然後選擇確定或取消。 你能告訴我必須做的那一步嗎?謝謝。顯示對話框的選項提交數據

回答

1

發送一個帶有數據的ajax請求到服務器端,如果存在數據返回某種錯誤碼。然後在ajax處理程序中檢查錯誤,如果它顯示消息「數據已存在」,如果不顯示消息「數據已添加」。服務器端應該檢查重複項並插入新數據。

如果用戶在「Data exists」對話框中選擇「ok」,則發送另一個帶有參數的請求來抑制重複錯誤。

客戶:

$.post("server.php", { "data": somedata }, function(result) { 
if (result.error && result.error == 1) 
    if (confirm("Duplicate data, continue?")) 
    $.post("server.php, { "data": somedata, "suppress": 1 }, function(result) { 
     alert("Data was added"); 
    }); 
else 
    alert("Data was added"); 
}, "json"); // we accept result in json format, jQuery will process it into JS object 

服務器:

if (isset($_POST['data']) && $_POST['data'] != "") { 
    if (check_duplicate($_POST['data']) // don't forget to implement this 
     && $_POST['suppress'] != 1) 
    return '{ "error": 1 }'; 
    else { 
    insert_data($_POST['data']); 
    return '{ ok }'; // you can return empty string as well 
    } 
} 
+0

你說 「數據」:somedata..can你給我舉例嗎? – klox 2010-08-04 06:23:41

+0

假設你有2個表單輸入,id爲「i1」和「i2」。然後你發送這樣的數據:{「i1」:$(「#i1」)。val(),「i2」:$(「#i2」)。val()}。把這個作爲第二個參數放到$ .post()函數中。並適當地更改PHP代碼。 – fuwaneko 2010-08-04 07:36:47