Jquery 表单和Ajax的问题
我正在尝试用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>
<!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是的。但是,通常情况下,您可能希望访问数据(为了成功)或抛出错误(为了出错),因此如果需要,我会留下参数。