这是我在Stackoverflow上的第一篇文章!
所以我正在尝试通过Jquery的$.ajax函数执行"插入"查询。查看 chrome 开发工具上的网络选项卡,它似乎正在加载我的文件但没有更新数据库。
没有任何 ajax,这段代码可以正常工作:
<form id="alForm" name="alForm" method="POST" action="add.php">
但是,这会将我带到空白的 php 页面。我不想这样。
让我分享我的代码!
这是 PHP:
<?php
error_reporting(E_ALL);
$user = 'root';
$pass = '';
try {
$db = new PDO('mysql:host=localhost;dbname=utility_portal', $user, $pass);
if (isset($_POST['save'])) {
$t = $db->prepare("INSERT INTO `u_links` (`title`, `link`) VALUES (?, ?)");
$t->execute(array($_POST['title'], $_POST['link']));
}
} catch(PDOException $e) {
echo "Error!: " . $e->getMessage() . "<br />" ;
die();
}
?>
这是Jquery:
$('#alForm').on('submit', function(event) {
$.ajax({
url : "add.php",
type : "POST",
data: $('#alForm').serialize(),
success: function(data) {
alert('submitted ' + data);
}
});
event.preventDefault();
});
和 HTML:
<form id="alForm" name="alForm">
<label>Title</label>
<input type="text" name="title" placeholder="Title"/>
<label>Link</label>
<input type="text" name="link" placeholder="Link"/>
<input type="submit" name="save" id="save" class="btn btn-primary" value="Save" />
</form>
对我来说,一切看起来都很好。我错过了什么吗?感谢您的帮助。
我认为您的问题是"序列化"部分。如果删除该行,则代码应该可以工作。您还可以使用快捷方式代码: $.post("add.php",
success: function(data) {
alert('submitted ' + data);
}