Javascript 使用jqueryajax发布表单并获得响应

Javascript 使用jqueryajax发布表单并获得响应,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我使用这段代码发布了一个使用jQueryAjax的表单。 我的问题是我想让php代码如下: if (isset($_POST[''])) { // some code here } 这是javascript代码: $("button#submit").click( function() { if( $("#username").val() == "" || $("#password").val() == "" ) $("div#status").html("Please ente

我使用这段代码发布了一个使用jQueryAjax的表单。 我的问题是我想让php代码如下:

if (isset($_POST[''])) {
// some code here
}
这是javascript代码:

$("button#submit").click( function() { 
  if( $("#username").val() == "" || $("#password").val() == "" )
    $("div#status").html("Please enter your Email");
  else
    $.post( $("#myForm").attr("action"), $("#myForm :input").serializeArray(),function(data) {
              $("div#status").html(data);
            });

    $("#myForm").submit( function() {
       return false;    
    });

});

php文件名中有6个b,但ajax url中有7个b

url: "bbbbbbb.php",  <--- 7 b's

bbbbbb.php  <--- 6 b's

如果您测试了代码,并且php部分工作正常,但是在jquery中无法得到响应,那么您应该检查php代码(应该是这样的):


尽管缺乏实际的问题,这里有一个裂缝的答案

第一个问题是javascript在工作时无法完成它应该完成的全部工作。javascript代码似乎希望防止通过submit事件手动提交表单。您可能希望重新组织javascript,使其看起来像:

$("#myForm").submit( function() {
   return false;    
});

$("button#submit").click( function() { 
  if( $("#username").val() == "" || $("#password").val() == "" ) {
    $("div#status").html("Please enter your Email");
  } else {
    $.post( $("#myForm").attr("action"), $("#myForm :input").serializeArray(),function(data) {
      $("div#status").html(data);
    });
  }
});
此外,您可能希望在jquery中查找现代事件监视的用法,以及
.on()
的用法。i、 e.
$(“#myForm”)。关于(“提交”,函数(){})。但这并不是本文的重点

至于PHP代码,我们推断您有以下HTML表单:

<form action="login.php" id="myForm">
    <label for="username">Username: </label>
    <input type="text" id="username" name="username" />
    <label for="password">Password: </label>
    <input type="password" id="password" name="password" />
    <button type="submit" id="submit" name="submit" value="submit">Submit</button>
</form>
<div id="status">Please provide username and password to login</div>    

这样,只需回显希望显示在div#status中的响应即可

这只是一个不是真实名称的示例,然后添加错误处理程序以查看实际错误。我已经更新了答案以包含错误代码。代码工作正常,我测试它以修改数据库中的某些内容,代码修改它,唯一的问题是响应中是否在控制台中收到js错误消息?没有,代码工作正常,我测试它以修改数据库中的某些内容,代码修改它,唯一的问题是反应,反应有什么问题?你的PHP代码
echo
ing有什么吗?你当前的PHP代码是什么?你到底想从这篇文章中得到什么?如果您要求某人编写处理从Ajax调用到PHP的POST所需的PHP代码,那么最好也为将要发布的表单元素(包括表单元素)提供HTML内容,这样我们就可以看到哪些HTML元素实际被序列化了。
$("#myForm").submit( function() {
   return false;    
});

$("button#submit").click( function() { 
  if( $("#username").val() == "" || $("#password").val() == "" ) {
    $("div#status").html("Please enter your Email");
  } else {
    $.post( $("#myForm").attr("action"), $("#myForm :input").serializeArray(),function(data) {
      $("div#status").html(data);
    });
  }
});
<form action="login.php" id="myForm">
    <label for="username">Username: </label>
    <input type="text" id="username" name="username" />
    <label for="password">Password: </label>
    <input type="password" id="password" name="password" />
    <button type="submit" id="submit" name="submit" value="submit">Submit</button>
</form>
<div id="status">Please provide username and password to login</div>    
if (!empty($_POST)) {
    if (isset($_POST['submit']) && $_POST['submit'] == 'submit') {
        // validate $_POST contains username and password
        ...

        // sanitize username and password
        $username = sanitize($_POST['username']);
        $password = sanitize($_POST['password']);

        // do my processing
        // doLogin returns true for successful login, or message contain error string
        $result = doLogin($_POST['username'], $_POST['password']);

        if ($result === true) {
           echo 'You have successfully logged in';
        } else {
           echo $result;
        }
    } else {
        echo 'Unknown form action';
    }
} else {
    // do GET processing 
}