我正在创建一个Web表单,我正在通过ajax验证输入。对于输入标记上的每个按键,该值被发送到一个php文件,其中检查数值等。这很简单,我只是回显一个显示的错误消息响应。 在同一个按键上,我还希望它检查所有输入值是否为!=“”,以便该人不能将条目留空。我试图让它控制提交按钮是否有效。这是我被卡住的地方。 有没有办法在ajax请求中发回两件事?我尝试使用php会话对象但它不会按我想要的方式工作(因为ajax没有更新整个页面。)
答案 0 :(得分:1)
是的,你可以。两个选项:
1 - 快速又脏 - 你可以用你需要的两件物品发回一根绳子。您需要将发送回一个字符串所需的两个项连接起来。然后,您的onSuccess函数会将字符串拆分为您想要的两个项目。
2 - 优雅的解决方案 - 您可以在服务器中创建一个JSON对象并将其发回。 JSON字符串类似于foo = {“var1”:“response1”,“var2”:“response2”}。在客户端脚本中,您将引用var1.response1和var2.response2。请参阅下面的一个使用Mootools(一个着名的javascript库)和PHP的例子:
javascript代码(客户端):
var params = "id=123&page=1&product=12"; //anything you need to pass to the server
var myRequest = new request.JSON({url:"url of your server script", onSuccess: function(result) {alert(result.response1); alert(result.response2);}).post(params);
PHP代码(服务器):
$a["response1"] = response1; //first thing you need to pass back
$a["response2"] = response2; //second thing you need to pass back
echo json_encode($a); // this will convert $a array to a json string
我希望这会有所帮助。祝你好运!
答案 1 :(得分:0)
你应该使用json。
$errors = array('Error1', 'Error2');
echo json_encode($errors);
答案 2 :(得分:0)
您可以将onsubmit处理程序附加到表单,该表单返回成功/失败的布尔值。
<script>
function myValidation(){
/*
Your AJAX validation call here.
*/
if(valid){
return true;
}else{
return false;
}
}
</script>
<form onsubmit="return myValidation();">
<input type="submit" name="submit" value="Submit" />
</form>
如果验证返回false,表单将不会提交。返回true允许表单根据需要进行处理。
答案 3 :(得分:0)
你为什么不用直接的jQuery做这个?在用户填写表单时,通过PHP进行ajax调用来验证表单似乎很荒谬。使用PHP提交后验证数据,而不是在。
期间除非你需要将输入与数据库中的某些东西相匹配,否则它听起来就像这样。