0

私の質問は少し複雑ですが、専門家は私が尋ねようとしていることを理解できるかもしれません。

フォームを送信し、宛先ページから検証結果を表示する 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 で処理された検証結果です。

私の問題は- 次のような検証結果でいくつかの英数字の文字列を取得しています

{"output":"","status":-1,"error_messages":{"error":["名前を入力してください。"],"success":[]}}

これは、message.php という名前の php ファイルがあるためです。この検証結果は、message.php から取得する必要があります。不要な文字を正確に処理して削除し、エラーメッセージを適切に表示します。

上記の JavaScript (Jquery) でこれを行う方法はありますか? 検証結果に不要な文字を入れないようにするために、検証結果を直接表示するのではなく、message.php を介して取得する必要があります (検証結果のみを表示する必要があります)。

またはあなたが持っている他の提案はありますか?

専門家からの前向きな行動を期待しています..

よろしくトム

追加情報ブラウザーのJavaScript をオフにすると、フォームが jquery-Ajax (form action="" を介して) を介して送信されず、検証メッセージが messages.php を介して送信されるため、結果は正しく生成されます。

メッセージは次のように表示されます

<?php 
 echo $messages; 
 ?>
4

2 に答える 2

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 );
            }
于 2013-05-05T07:22:45.373 に答える