根据用户输入表单错误处理ajax

时间:2013-05-23 21:05:07

标签: php jquery ajax forms error-handling

在这个问题上找不到任何有价值的答案: 它是一个非常基本的ajax表单进程处理程序:

$(document).ready(function(){

});
function functionToUpdate(id)
{
    var data = $('form').serialize();
    $('form').unbind('submit');                
    $.ajax({
        url: "Blahblah.php",
        type: 'POST',
        data: data,
        dataType:"json",
        beforeSend: function() {

        },
        success: function(msg) 
        {
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
            alert(req.responseText);      
        }
    });
    return false;
} 

可以正常更新mysql数据库中的内容。 (这是一个php文件) 我在php文件中检查了值,并使用不同的检查作为isset($ Post)等。

例如:

if(isset($_POST['submit']))
{
    //do stuff here if button is clicked
}
else{
    // play a nice error message
}

如何从ajax成功部分中显示的网址获取此信息? 像这样:(例如)

success: function(msg) 
{
   if(post = true)
   {
       $('#succesfull').html("Succesfull query").fadeIn(800)
   }
   else
   {
       $('#fault').html("U didn't fill stuff in, failed!").fadeIn(800)
   }
},

例如这种不安。 但我无法从关注的网址中获取这些数据。

所有的帮助都是适当的。

1 个答案:

答案 0 :(得分:0)

您需要将Blahblah.php的输出处理为msg

success: function(msg) 
        {
           if(msg=='xxxx'){
             //Do stuff
           }
        },

编辑:

我想你可能误解了ajax调用中success:的含义。这表示已成功加载被调用页面。

看看.ajax。对于这种情况,使用$.post

可能更简单

甚至$.getJSON

如果您使用JSON,则Blahblah.php的输出必须为json_encode

编辑:

要返回Blahblah.php的html输出,请尝试以下内容:

<?php
//must be before any output
ob_start();

//php code

$output = ob_get_contents();
$return['data'] = utf8_encode($output);
ob_end_clean();
echo json_encode($return);
?>

然后在jQuery中

$.post("Blahblah.php", data, function(msg)
{
  $('#succesfull').html(msg.data);
}, "json");