Php 在Jquery中正确显示验证结果
我的问题有点复杂,但专家们可能理解我想问的问题 我在Jquery中有以下代码,它提交表单并显示目标页面的验证结果Php 在Jquery中正确显示验证结果,php,javascript,jquery,jquery-forms-plugin,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(da
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,“错误消息”:{“错误”:[“请输入您的姓名],“成功”:[]}
这是因为我有一个名为message.php的php文件,这个验证结果应该通过message.php获得。它正在仔细处理和剥离不需要的字符,并正确显示错误消息
在上面的JavaScript(Jquery)中是否有任何方法可以做到这一点,验证结果应该通过message.php而不是直接显示,以避免在验证结果中放入不需要的字符(应该只显示验证结果)
或者你还有其他建议吗
期待专家的积极行动
问候
汤姆
其他信息
关闭浏览器JavaScript时,结果会正确生成,因为表单没有通过jquery Ajax(通过form action=“”)提交,验证消息通过messages.php发送
消息显示为
<?php
echo $messages;
?>
我忽略了
数据['output']
和数据['status']
,因为我真的不知道您打算如何使用它们以及它们可能具有的值。我假设返回的成功或错误消息对于用户来说已经足够了
看起来data
包含JSON,那么为什么不拉出相关的成功或错误消息呢
...
success: function(data)
{
var msg = data['error_messages']['success'][0] != '' ? data['error_messages']['success'][0] : data['error_messages']['error'][0] ;
$('#results').html( msg );
}
...
回答形式@gillyspy是正确的。
唯一缺少的部分是将ajax返回数据字符串分割为jason 在ajax请求中添加数据类型:“json”。
或者将您的成功函数更改为
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 );
}
陛下您所说的是“message.php仅在禁用javascript时执行,而在执行ajax调用时不执行”吗?请添加更多信息。表单上的操作是什么?#登录表单还是其他操作?这不是本期的主题。表单发送到的位置(操作)。。我在谈论表单成功发送后产生的结果。。请阅读并回复..嗯:我不明白您的“附加信息”应该告诉我们什么。这是指验证消息通过messages.php发送,如果不是通过Ajax提交..请阅读我在附加信息之前所述的内容。如果你没有;明白了,请离开这件事@机灵的。。谢谢..我收到的错误是“error\u messages.success为null或不是对象”。。需要其他信息吗?@gillyspy。。你能解释一下你使用的方法吗?你给了我们一个结果的例子。您似乎只希望以最终用户能够理解的方式显示与最终用户相关的结果。您没有指定是否要显示成功和/或失败,因此我在
$('#results')
元素中显示。我给你写一把小提琴。谢谢你。。我正在尝试显示成功和失败错误消息。。我是说…谢谢。。小提琴手是否正在用javascript编写虚假的验证消息?它没有在php中显示来自操作页面的错误消息或验证消息?感谢您花费宝贵的时间。。但是我在使用上述代码时没有得到正确的输出。。。你能查一下吗。。。