Javascript 带有ajax错误消息的表单提交

Javascript 带有ajax错误消息的表单提交,javascript,php,jquery,ajax,forms,Javascript,Php,Jquery,Ajax,Forms,我不熟悉ajax概念。在这里,我试图将用户详细信息(注册表单)插入数据库。它成功地将数据插入数据库。但是,ajax是我的问题 1) 如果表单字段为空,我没有收到任何错误消息。您可以看到我在post.php页面上验证的以下代码。但是,它不会返回错误值。2) 它将空值存储到数据库中。3) 如果数据存储成功,我希望获得成功消息&如果数据未能存储在db中,我希望获得错误消息。我该怎么做这些事情呢 Ajax.js $(function () { $('form').on('submit',

我不熟悉ajax概念。在这里,我试图将用户详细信息(注册表单)插入数据库。它成功地将数据插入数据库。但是,ajax是我的问题

1) 如果表单字段为空,我没有收到任何错误消息。您可以看到我在post.php页面上验证的以下代码。但是,它不会返回错误值。2) 它将空值存储到数据库中。3) 如果数据存储成功,我希望获得成功消息&如果数据未能存储在db中,我希望获得错误消息。我该怎么做这些事情呢

Ajax.js

$(function () {
        $('form').on('submit', function (e) {
          $.ajax({
            type: 'POST',
            url: 'post.php',
            data: $('form').serialize(),
            success: function(msg) {
              if(msg=='error_n')
              {
                  $("#e_name").html('Name required');                    
              }
              if(msg=='error_m')
              {
                   $("#e_mobile").html('Mobile required');
              }

              //success and error alert
              if(data="inserted")
              {
                alert("insertion success");
              }
              else
              {
                alert("falid to insert into database");
              }
            }
          });
         e.preventDefault();
        });
      });
Post.php

<?php

    include_once('config.php');

    $name = trim($_POST["name"]);
    $mobile = trim($_POST["mobile"]);

    if($name == "")
    {
        echo 'error_n';
    }
    if($mobile == "")
    {
        echo 'error_m';
    }

    try
    {
        $stmt = $conn->prepare("INSERT INTO sample ( Name, Mobile ) VALUES ( ?, ? )");
        $conn->errorInfo();
        $stmt->bindParam('1', $name, PDO::PARAM_STR);
        $stmt->bindParam('2', $mobile, PDO::PARAM_STR);
        $stmt->execute();
    }
    catch(PDOException $e)
    {
        'Query failed to insert into database' .$e->getMEssage();
    }

?>
<p>register <a href = "javascript:void(0)" onclick = "document.getElementById('light').style.display='block';document.getElementById('fade').style.display='block'">here</a></p>

<div id="light" class="white_content">
  <a href = "javascript:void(0)" onclick = "document.getElementById('light').style.display='none';document.getElementById('fade').style.display='none'">Close</a>
   <form>
      <input type="hidden" name="form" value="values" />
      name : <input name="name" id="name" type="text" /><span id="e_name"></span> <br />
      mobile : <input name="mobile" id="mobile" type="text" /><span id="e_mobile"></span> <br />
      <input type="submit" value="submit" />
  </form>
</div>
<div id="fade" class="black_overlay"></div>

Homepage.php

<?php

    include_once('config.php');

    $name = trim($_POST["name"]);
    $mobile = trim($_POST["mobile"]);

    if($name == "")
    {
        echo 'error_n';
    }
    if($mobile == "")
    {
        echo 'error_m';
    }

    try
    {
        $stmt = $conn->prepare("INSERT INTO sample ( Name, Mobile ) VALUES ( ?, ? )");
        $conn->errorInfo();
        $stmt->bindParam('1', $name, PDO::PARAM_STR);
        $stmt->bindParam('2', $mobile, PDO::PARAM_STR);
        $stmt->execute();
    }
    catch(PDOException $e)
    {
        'Query failed to insert into database' .$e->getMEssage();
    }

?>
<p>register <a href = "javascript:void(0)" onclick = "document.getElementById('light').style.display='block';document.getElementById('fade').style.display='block'">here</a></p>

<div id="light" class="white_content">
  <a href = "javascript:void(0)" onclick = "document.getElementById('light').style.display='none';document.getElementById('fade').style.display='none'">Close</a>
   <form>
      <input type="hidden" name="form" value="values" />
      name : <input name="name" id="name" type="text" /><span id="e_name"></span> <br />
      mobile : <input name="mobile" id="mobile" type="text" /><span id="e_mobile"></span> <br />
      <input type="submit" value="submit" />
  </form>
</div>
<div id="fade" class="black_overlay"></div>
寄存器

名称:
手机:

返回错误消息后,需要停止脚本执行。当前代码仍尝试添加值,因此会覆盖自定义错误消息。很可能PHP会返回异常消息,而这不是JavaScript所期望的

if($name == "")
{
    echo 'error_n';
    die(); // Stop here
}
if($mobile == "")
{
    echo 'error_m';
    die(); // Stop here
}

还添加
echo“插入”当数据库插入成功时

现在它不会将空值存储在db中。没关系。谢谢但是,在这里显示成功和失败消息是我的问题之一。我没有正确地得到成功和失败的信息。当将空字段提交到数据库中时,它总是警告“插入成功”。如果用户提交空数据,则应显示所需的值。但它没有…这种行为是不可能的代码。它应该返回
error\n
,这将被javascript捕获。当您将某些内容留空时,您是否可以在firebug中检查PHP向JavaScript返回的值?