我正在尝试学习Ajax。我通过PHP从Html表单插入一些数据到mysql数据库。它工作得很好。但我的ajax部分不起作用。我得到了成功消息,但数据不会转到我的php文件。我的html和js代码:
<!DOCTYPE html>
<html>
<head>
<title>Insertion of data with Ajax</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"> </script>
</head>
<body>
<form id="myForm" method="POST" action="ajax-save.php">
Title: <input type="text" name="title" id="title"><br /><br />
Description: <textarea name="description" id="description" rows="20" cols="40"></textarea><br /><br />
Url: <input type="text" name="url" id="url"><br /><br />
<input type="submit" id="submit" name="submit" value="submit">
</form>
<script>
$(document).ready(function(){
$("#submit").click(function(){
$.ajax({
url: 'ajax-save.php',
async: true,
cache: false,
data: $('#myForm').serialize() ,
type: 'POST',
success: function(){
alert("success");
clearForm();
}
});
return false;
});
});
</script>
</body>
</html>
我的php代码工作正常。我没有ajax测试过它。这是我的PHP代码。
$conn = mysql_connect('localhost', 'root', '');
$db = mysql_select_db('hospital');
if (isset($_POST['title'])) { $title = $_POST['title'];}
if (isset($_POST['description'])) { $description = $_POST['description'];}
if (isset($_POST['url'])) { $url = $_POST['url'];}
if(isset($_POST['submit'])){
if(mysql_query("insert into `wp_upload_video` (`id`, `title`, `description`, `url`) values (NULL, '$title', '$description', '$url')"))
echo "Successfully Inserted";
else
echo "Insertion Failed";
}
请让我知道我的错在哪里。
答案 0 :(得分:0)
当您通过单击submit
按钮通过ajax提交时......该条件总是为真。
检查PHP中是否设置$_POST['submit']
将始终导致 true ,因为如果它不为真,那么ajax永远不会得到处理。
所以...删除PHP中的if submit条件并在ajax调用中处理错误通知。
另外,正如@NiettheDarkAbsol在评论中所指出的那样,将e.preventDefault()
添加到jquery也是一个好主意,以便像往常一样停止提交表单的提交按钮并允许jquery处理提交(通过ajax)。