在Jquery中正确显示验证结果

时间:2013-05-05 06:02:51

标签: php javascript jquery jquery-forms-plugin

我的问题并不复杂,但专家可能会理解我想要问的问题。

我在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" {&#34 ;错误":["请输入您的姓名。"],"成功":[]}}

这是因为我有一个名为message.php的php文件,这个验证结果应该来自message.php。它是exaclty处理和剥离不需要的charectors并正确显示错误消息。

在上面的JavaScript(Jquery)中是否有任何方法可以通过message.php而不是直接显示来验证结果,以避免在验证结果中放入不需要的字符(仅显示验证结果)。

或者您有任何其他建议?

期待专家的有利行动..

此致 TOM

其他信息 当关闭浏览器 JavaScript 时,结果正确生成,因为表单不通过jquery-Ajax提交(通过表单操作=""),验证消息通过消息传递。 PHP。

消息显示为

<?php 
 echo $messages; 
 ?>

2 个答案:

答案 0 :(得分: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 );
}
...

答案 1 :(得分: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 );
            }