我正在尝试使用Ajax提交表单,这是我的简化代码我的索引:

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script type="text/javascript" src="jquery-1.7.1.min.js"></script>
        <script>
            $(document).ready(function(){
                $("#addemail").click(function(){
                    var email=$("#email").val();
                    $.ajax({
                        type: "POST",
                        url: "addemail.php",
                        data: "email="+email,
                        success: console.log("success!"), 
                        error: console.log("error!") 
                    });        
                }); 
            });
        </script>
    </head>
    <body>
        <div id="wrapper">
        <h2>Email:</h2>
          <form action="" method="post">
               <table>
                  <tr>
                      <td><label>Années:</label></td>
                      <td><input type="text" id="email" name="email" /></td>
                      <td><input type="submit" id="addemail" value="Ajouter" /></td>
                  </tr>  
              </table>                   
          </form>   
        </div>
    </body>
</html>

而这里我的PHP文件

<?php
    $connection =  mysql_connect('localhost', 'XXX', 'XXX');
    $db=  mysql_select_db('mydb', $connection);
    $email= $_POST["email"];
    $query  = 'INSERT INTO users(email) VALUES ("'.mysql_real_escape_string($email).'")';
    mysql_query($query);

?>

我的问题是它不起作用...但是,如果我在ajax工作之后放置一个断点,它会在db But中写好电子邮件,然后我将创建两个控制台日志(成功!和错误!)...同样如果我将action =“ addemail.php”添加到表单中,它将不会执行Ajax并转到php页面(此位置为空白,但在db中写得很好...)

有人帮我吗?

===============>>#1 票数:3 已采纳

这是错误的:

success: console.log("success!"),

这样一来,您正在执行的日志呼叫马上 ,并指派其结果success

您想要创建两个匿名函数,这些匿名函数将在事件发生时执行:

success: function() { console.log("success!"); },
error: function() { console.log("error!"); },

===============>>#2 票数:1

成功和错误需要包装为函数:

success: function (data, textStatus, jqXHR) { console.log("success!") }, 
error: function (jqXHR, textStatus, errorThrown) { console.log("error!") }

===============>>#3 票数:0

$.ajax({})您需要输入

return false;

否则,即使ajax成功,它也会继续执行并转到php页面。

  ask by blop translate from so

未解决问题?本站智能推荐:

关注微信公众号