我有一個帳戶設置頁面,將檢測到任何更改的字段,並通過jquery.ajax提交這些領域的PHP文件,PHP文件引入口,並驗證了一些不同的情況下,每場並且如果它們中的任何一個拋出錯誤,則返回錯誤,退出並且要求用戶重新輸入該字段。這一切工作正常... ...但是更新只能從賬戶設置頁面提交的領域
我有我的如何建立一個循環只更新所提交的領域的問題。目前,PHP文件具有這樣的結構:
Check for ajax request {
Validate fields...
Update Fields...
}
我的「更新域」的代碼看起來像這樣和是它不會以這種方式工作,我知道:
// grab all variables except passwords
$email = mysql_real_escape_string($_POST['email']);
$newpass = mysql_real_escape_string(md5($_POST['newpass']));
$bname = mysql_real_escape_string($_POST['bname']);
$bemail = mysql_real_escape_string($_POST['bemail']);
$sql = "UPDATE usertable SET email='$email', password='$newpass', bname='$bname', bemail='$bemail' WHERE username = '$user'";
mysql_query($sql);
$msg = "Account updated successfully.";
header('Cache-Control: no-cache, must-revalidate');
header('Expires: '.date('r', time()+(86400*365)));
header('Content-type: application/json');
echo json_encode(array(
'valid' => yes,
'msg' => $msg,
));
exit();
有問題的行是$ sql =「更新usertable ...」行。我如何編寫一個PHP循環來獲取所有發佈的變量作爲數組,並以某種方式使用它們來構建更新查詢字符串...如果你需要其他任何東西讓我知道。問了很多,但我一直在思考四個小時,並沒有找到一種方法來做到這一點,沒有太多的非直接編碼運行。
另外:有沒有辦法來回報所有未經驗證的領域?一般的想法,如使用數組和每個循環或什麼?目前如果我們說,電子郵件字段和密碼字段不驗證,它只顯示需要重新輸入的電子郵件字段,因爲它首先顯示在php文件中。我寧願告訴他們所有沒有驗證的字段。我知道它只是與我的代碼的位置和我只是手動編碼每個驗證(這是很長的路)的方式有關,所以對此的任何洞察都將幫助我創建一個BILLION,尤其是在後端的未來頁面上。
任何幫助的感謝你們!
任何建議關於如何從ajax請求(所有編輯的字段中)獲取序列化的字符串並將其分解爲一組字段以便udpate?除此之外,這似乎是它的工作非常適合我的需要... 另外,關於建立響應清單,以便它可以說什麼「這這,這是更新的,這是沒有更新」?或者我應該只是不提交任何東西,如果需要驗證,只有當所有字段驗證是否編輯了多個字段時更新提交的字段? 選擇你的答案,謝謝你! – 2012-01-12 06:57:24