Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 表单和Ajax的问题_Jquery_Ajax_Forms - Fatal编程技术网

Jquery 表单和Ajax的问题

Jquery 表单和Ajax的问题,jquery,ajax,forms,Jquery,Ajax,Forms,我正在尝试用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>

我正在尝试用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>

$(文档).ready(函数(){
$(“#addemail”)。单击(函数(){
var email=$(“#email”).val();
$.ajax({
类型:“POST”,
url:“addemail.php”,
数据:“email=”+email,
success:console.log(“success!”),
错误:console.log(“错误!”)
});        
}); 
});
电邮:
安妮斯:
这里是我的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中很好地编写电子邮件,但是我有两个控制台日志(成功!和错误!)。。。 另外,如果我将action=“addemail.php”添加到表单中,它将不会执行Ajax并进入php页面(它是空白的ofc,但在db中写得很好…)

有人来帮我吗?

$.ajax({})
之后你需要把

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

$之后。ajax({})
您需要将

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

这是错误的:

success: console.log("success!"),
这样,您就可以直接执行日志调用,并将其结果分配给
success

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

success: function() { console.log("success!"); },
error: function() { console.log("error!"); },
这是错误的:

success: console.log("success!"),
这样,您就可以直接执行日志调用,并将其结果分配给
success

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

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

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

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

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

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

欢迎来到堆栈溢出!您没有在查询中执行任何错误检查。您需要在调用
mysql\u query()
后执行此操作。否则,如果查询失败,脚本将中断。如何做到这一点在本欢迎使用堆栈溢出中的或中进行了概述!您没有在查询中执行任何错误检查。您需要在调用
mysql\u query()
后执行此操作。否则,如果查询失败,脚本将中断。如何做到这一点在or中有概述,我很确定jQuery会处理事件处理程序fine.Nope。如果不添加返回值false,它将无法正常工作。前几天我也遇到了同样的问题。至少我从来没有遇到过这样的问题。@mc10我想我现在可以解释为什么在某些地方出现了这样的问题,而不是在其他地方(我没有测试过这个理论,但它是有意义的)。如果您在表单中有操作,那么您需要
返回false
,但是如果您没有,那么页面在没有ajax调用的情况下将无法执行任何操作,因此您不需要
返回false
。我很确定jQuery很好地处理了事件处理程序。不。如果不添加返回值false,它将无法正常工作。前几天我也遇到了同样的问题。至少我从来没有遇到过这样的问题。@mc10我想我现在可以解释为什么在某些地方出现了这样的问题,而不是在其他地方(我没有测试过这个理论,但它是有意义的)。如果您在表单中有操作,那么您需要
返回false
,但是如果您没有,那么页面在没有ajax调用的情况下不会做任何事情,因此您不需要
返回false
.Thanx!!!这就是问题所在!但是我不能只写:success:function(){console.log(“success!”)},?blop是的。但是,通常情况下,您可能希望访问数据(为了成功)或抛出错误(为了错误),因此如果您需要,我会留下参数。Thanx!!!这就是问题所在!但是我不能只写:success:function(){console.log(“success!”)},?blop是的。但是,通常情况下,您可能希望访问数据(为了成功)或抛出错误(为了出错),因此如果需要,我会留下参数。