2013-05-05 49 views
0

我的問題並不複雜,但專家可能會理解我想問的問題。在Jquery中顯示驗證結果

我在Jquery中提供了一個表單並顯示來自目標頁面的驗證結果的以下代碼。

submitHandler : function(form) { 
if($('#login').submit(function(){return false;})) 
{ 
$.ajax 
({ 
type: 'POST', 
url: $('#login').attr('action'), 
data: $('#login').serialize(), 
success: function(data) 
{ 
$('#results').html(data); 
} 
}); 
} 
return false; 
}, 

目標頁面在php中。 在#results顯示的內容是php處理的驗證結果

我的問題是 - 蔭獲得與所述驗證結果的一些字母數字字符串如下

{「輸出」:「」,「狀態「:-1,」error_messages「:{」error「:[」請輸入你的名字。「],」success「:[]}}

這是因爲我有一個名爲message.php的php文件驗證結果應該通過message.php來實現。這是exaclty處理和剝離不需要的charectors並正確顯示錯誤消息。

有沒有什麼辦法可以在上面的JavaScript(Jquery)中通過message.php代替直接顯示驗證結果,以避免在驗證結果中顯示不需要的字符(只應顯示驗證結果)。

還有其他建議嗎?

期待着從專家的有利作用..

問候 TOM

附加信息 當關閉瀏覽器的JavaScript 結果是否正確產生,因爲形式是不通過jquery-Ajax提交(通過form action =「」),並通過messages.php發送驗證消息。

的消息顯示爲

<?php 
echo $messages; 
?> 
+0

Hm;它是「message.php只有在javascript被禁用時執行,但如果你做ajax調用,則不會執行」你在說什麼?請添加更多信息。表單中的操作是什麼?是表單中的#login還是其他操作? – 2013-05-05 06:36:09

+0

這不是一個主題在這個問題上。表單發送到(行動).. Iam談論結果生成後,表單已成功發送..請閱讀並回復.. – t0m 2013-05-05 06:41:34

+0

嗯:比我不明白你的「附加信息」應該告訴我們什麼。 – 2013-05-05 06:45:14

回答

0

我忽略data['output']data['status'],因爲我真的不知道你打算如何使用他們,他們能有什麼樣的價值觀。我假設返回的成功或錯誤消息對用戶來說已經足夠了。

它看起來像data包含JSON,所以爲什麼不拉出相關的成功或錯誤消息?

DEMO

... 
success: function(data) 
{ 
    var msg = data['error_messages']['success'][0] != '' ? data['error_messages']['success'][0] : data['error_messages']['error'][0] ; 
    $('#results').html(msg); 
} 
... 
+0

@gillyspy ..謝謝..我得到的錯誤是「error_messages.sucess是空的或不是一個對象」..任何額外的信息需要? – t0m 2013-05-05 06:37:03

+0

@gillyspy ..你可以解釋你正在使用的方法嗎? – t0m 2013-05-05 07:07:00

+0

你給了我們一個你的結果的例子。您似乎只對顯示與最終用戶相關的結果感興趣,但他們能夠理解。你沒有指定是否顯示成功和/或失敗,所以我顯示在$('#results')'元素中。我會爲你寫一個小提琴。 – gillyspy 2013-05-05 07:12:27

0

答案形式@gillyspy是正確的。
缺少的唯一部分是將ajax返回數據字符串作爲jason部分。

請將dataType: 'json',添加到您的ajax請求中。
或將您的成功功能更改爲

success: function(str) 
      { 
       var data =$.parseJSON(str); 
       var msg = data['error_messages']['success'].length != 0 ? data['error_messages']['success'][0] : data['error_messages']['error'][0] ; 
       $('#results').html(msg); 
      } 
+0

感謝您花費寶貴的時間..但使用上面的代碼iam沒有得到正確的輸出...你可以檢查... – t0m 2013-05-05 11:14:26