PHP如何使用ajax表单提交
我正在尝试一个简单的ajax请求,提交时不需要刷新页面。但我想我做得不对。任何帮助都将不胜感激 HTML/JS页面PHP如何使用ajax表单提交,php,javascript,jquery,html,ajax,Php,Javascript,Jquery,Html,Ajax,我正在尝试一个简单的ajax请求,提交时不需要刷新页面。但我想我做得不对。任何帮助都将不胜感激 HTML/JS页面 <script> $(function () { $('form#person').on('submit', function(e) { $.ajax({ type: 'post', url: 'addAPerson.php',
<script>
$(function () {
$('form#person').on('submit', function(e) {
$.ajax({
type: 'post',
url: 'addAPerson.php',
data: $(this).serialize(),
success: function (o) {
=====> console.log(o); <=== I TRIED DOING THIS BUT NOTHING IS PRINTED
alert('MUST ALERT TO DETERMINE SUCCESS PAGE');
}
});
e.preventDefault();
});
});
</script>
<form id="person" action="addAPerson.php" method="post">
Firstname: <input name="fname" />
Lastname: <input name="lname" />
<input type="reset" style="float:right"name="cancel" value="cancel"/>
<input type="submit" name="submit" value="save"/>
</form>
$(函数(){
$('form#person')。关于('submit',函数(e){
$.ajax({
键入:“post”,
url:'addAPerson.php',
数据:$(this).serialize(),
成功:功能(o){
====>console.log(o);如果页面上有多个表单,则需要更改:
$('form').serialize(),
致:
否则,它将包括此脚本参数中所有表单的字段
我还建议PHP回显一些东西来指示它是否成功,然后AJAX成功函数可以显示这些东西
您还应该清理脚本的输入,并将mysql_xxx函数转换为mysqli_xxx或PDO,最好使用参数化查询。以下是基于您的代码的测试。我在其中做了一些修改。首先,我输入jQuery链接并向每个文本框添加“type”
<html>
<head>
<script src="./jquery-1.9.1.min.js"></script>
<script>
$(function () {
$('form#person').on('submit', function(e) {
$.ajax({
type: 'post',
url: 'test.php',
data: $('form').serialize(),
success: function () {
alert('MUST ALERT TO DETERMINE SUCCESS PAGE');
}
});
e.preventDefault();
});
});
</script>
</head>
<body>
<form id="person" method="post">
Firstname: <input name="fname" type="text" />
Lastname: <input name="lname" type="text" />
<input type="reset" style="float:right"name="cancel" value="cancel"/>
<input type="submit" name="submit" value="save" />
</form>
</body>
$(函数(){
$('form#person')。关于('submit',函数(e){
$.ajax({
键入:“post”,
url:'test.php',
数据:$('form')。序列化(),
成功:函数(){
警报(“必须发出警报以确定成功页面”);
}
});
e、 预防默认值();
});
});
名字:
姓氏:
这是php代码。我没有连接到数据库,而是简单地回显一个字符串。我可以在单击“保存”按钮时看到警报,而不刷新页面
<?php echo "success"; ?>
这是一个满足您需求的替代方案。它们提供源代码,您可以在本地下载并测试运行
首先,这个
需要更改为
,对另一个做同样的操作。@Fred ii-type=“text”
是默认设置。@Barmar哦,我现在还不知道。谢谢你添加的信息,我会记住的。(称之为习惯);-)不知道是否有必要,但是URL的完整路径可能很好???@Barmar,因为Ajax已经包含action=“addAPerson.php”
,是否仍有必要将其作为表单操作?我记得看到很多次,它不必位于表单内部,只需Ajax,只要它指向表单的ID,对吗?感谢这一小小的错误,但是..我唯一的问题是我的表单已成功提交,但数据不在其中。我仍然需要刷新它他打开页面查看插入的数据。有什么建议吗?谢谢您需要将代码放入更新DOM以显示新数据的success
函数中。在传统表单提交中,可能会发生这种情况,因为它会重新加载页面,但在使用AJAX时需要显式编码。我尝试使用console.log()“o”没有打印任何内容。对不起,我对ajax请求还是新手。谢谢你的帮助。哦,对不起。我刚刚编辑了我的文章。应该怎么做才能打印我插入的数据?再次感谢你的帮助。你读过ajax教程吗?我不会教你如何在这种设置下使用ajax,教程应该会显示谢谢你的帮助:)
<html>
<head>
<script src="./jquery-1.9.1.min.js"></script>
<script>
$(function () {
$('form#person').on('submit', function(e) {
$.ajax({
type: 'post',
url: 'test.php',
data: $('form').serialize(),
success: function () {
alert('MUST ALERT TO DETERMINE SUCCESS PAGE');
}
});
e.preventDefault();
});
});
</script>
</head>
<body>
<form id="person" method="post">
Firstname: <input name="fname" type="text" />
Lastname: <input name="lname" type="text" />
<input type="reset" style="float:right"name="cancel" value="cancel"/>
<input type="submit" name="submit" value="save" />
</form>
</body>
<?php echo "success"; ?>