問題是沒有返回Parse_Error函數的返回語句。它返回的是你聲明的所謂匿名函數(function(data){...}
),它將數據提供給JQuery,它將有效地忽略它。相反,你需要做這樣的事情:
// your code that does the query
do_error_query('The Error Message');
function do_error_query(ErrMsg) {
$.post("ajax/errormsg.php", {errmsg: ErrMsg} , function(data){
alert(data);
// here you need to call a function of yours that receives the data.
// executing a return statement will return data to jquery, not to the calling
// code of do_error_query().
your_function(data);
});
}
function your_function(data){
// process the data here
}
的問題是,調用do_error_query()
完成從PHP頁面的搜索結果,甚至纔回來。所以不可能返回結果。換句話說,在do_error_query()
返回後,your_function(data)
會被調用。我希望這是有道理的。
實際上,do_error_query()
只是設置一個事件處理程序。它不能返回值,因爲事件尚未完成。這就是事件處理程序your_function(data)
的用途。它處理事件,從PHP頁面返回數據。雖然活動尚未完成,但do_error_query()
將很早就完成。
(我不在家測試),但從理論上講,如果我沒有正常使用, – 2013-02-27 17:45:08
嗯..這會讓我的問題複雜化!由於我在我的Web應用程序上有多種語言,因此,當我遇到客戶端錯誤消息時,我會調用相同的PHP腳本並返回Correcte錯誤消息。 EX:在腳本中,我將發送以下字符串到php腳本「{Client_Not_Found}」,腳本將返回「在數據庫中找不到請求的客戶端」。當然,如果用戶是Speack法語或西班牙語,文本會以他的語言回來。我目前使用相同的代碼,所有我的腳本,並希望將它分組在一個函數...任何好主意?謝謝! – 2013-02-27 17:52:32
很自然,有些東西會被複制到客戶端和服務器上,解決方案是個人喜好之一,也取決於應用程序的大小,部件是否將被重用等等。我的選擇,如果支持的話只有幾種語言和一些錯誤消息,我會硬編碼它們,在必要時複製。但是如果你已經開發了一個結構來迎合許多字符串,甚至不同語言的文章,那麼你可以用它來代替。 – Jodes 2013-02-27 20:50:31