php - 多次验证

时间:2011-09-06 20:19:26

标签: php

我正在创建一个Web表单,我正在通过ajax验证输入。对于输入标记上的每个按键,该值被发送到一个php文件,其中检查数值等。这很简单,我只是回显一个显示的错误消息响应。 在同一个按键上,我还希望它检查所有输入值是否为!=“”,以便该人不能将条目留空。我试图让它控制提交按钮是否有效。这是我被卡住的地方。 有没有办法在ajax请求中发回两件事?我尝试使用php会话对象但它不会按我想要的方式工作(因为ajax没有更新整个页面。)

4 个答案:

答案 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提交后验证数据,而不是在。

期间

除非你需要将输入与数据库中的某些东西相匹配,否则它听起来就像这样。