2010-02-24 44 views
2

這是一個非常簡單的問題(我希望),但作爲只是傾向/掌握jQuery我提前道歉。jQuery過程形式

如果我有一個表單,例如

<form id="form"> 
<input type="text" name="abc" /> 
<input type="text" name="def"/> 
<input type="text" name="ghi"/> 
<input type="submit" name="try" id="try" /> 
</form> 

然後通過jQuery發送這樣

$.post("process.php", $("#form").serialize()); 

我如何訪問數據來處理process.php的信息?即通過一個簡單的PHP插入查詢(我可以編寫PHP!),我如何訪問序列化的數據。還有一種方法可以發送所有數據(來自3個字段)作爲變量 - 我認爲這是JSON ?,如果是這樣,那麼當我調用數據庫來顯示它時,如何重新處理該信息。

我對大多數事情都有很好的把握,所以你不需要過分簡單化,但只是一些通用的指針會有所幫助。謝謝

回答

0

你有沒有想過簡單地改變表單標籤的動作和方法屬性,,然後提交?

$("#form").attr("action", "process.php").attr("method", "post").submit(); 

這就是說,小心,如果你這樣做。 onSubmit(如果有的話)在直接從jQuery調用submit()時不會運行。你必須找到它並自己運行它。

+0

任何特別的原因,爲什麼我應該做的/這一點? – RussellP

+0

它正在模擬表單意味着要提交的方式。將動作更改爲您要發佈到的頁面,發佈的方法將自動獲取所有值並將其發佈到action屬性指定的頁面。它清除了您的所有需求,並利用瀏覽器自動執行回發的功能。不需要json的知識。 –

1

在process.php中,數據已經可以在$ _POST superglobal中反序列化了。

JSON是另一種序列化形式,最適合於將響應從PHP發送回javascript。

例如,在你的情況下,process.php讀取$ _POST,以某種方式處理結果,然後你可以格式化數組中的腳本返回值,使用json_encode()和die($ json_encoded_variable_here)將其返回給jquery。

在jQuery中,你可以回調添加到您的函數:

$.post("process.php", $("#form").serialize(), function(json){ 
    // the variable json is the JSON died() by php and can be easily parsed by jquery 
}, 'json');