我正在研究一个asp项目,现在我已经迁移到了php . 我使用ajax脚本提交到数据库而不刷新asp中的页面 . 现在我在php中使用相同的ajax脚本,但它无法正常工作 . 当我在谷歌浏览器中打开控制台时,它也没有显示任何错误,但是当我检查数据库时,我发现没有提交任何记录 .
HTML和AJAX
<!DOCTYPE html>
<html>
<head>
<script src="jquery/jquery.js"></script>
<script>
$(function(){
$("#form1").submit(function() {
$.post("insert.php", $(this).serialize(),function(data){
// I am done. The page returned by insert_db.php is now in data
} )
return false
})
})
</script>
</head>
<body>
<form method="post" id="form1">
<table>
<tr>
<td>firstname</td>
<td><input type="text" name="fname" id="fname"/></td>
</tr>
<tr>
<td>lastname</td>
<td><input type="text" name="lname" id="lname"/></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" id="submit" value="Submit" /></td>
</tr>
</table>
</form>
<table border="1">
</table>
</body>
</html>
PHP
<?php require_once('Connections/connect.php'); ?>
<?php
if (isset($_POST['submit']))
{
include 'connections/connect.php';
$fname=$_POST['fname'] ;
$lname= $_POST['lname'] ;
mysql_query("INSERT INTO users(fname,lname) VALUES ('$fname','$lname')");
}
?>
连接线
<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_connect= "localhost";
$database_connect = "speedapp";
$username_connect= "root";
$password_connect= "user2";
$connect= mysql_pconnect($hostname_connect, $username_connect, $password_connect) or trigger_error(mysql_error(),E_USER_ERROR);
?>
6 回答
您尚未选择数据库 . 在
connect.php
中包含以下内容使你的js阻止提交的默认动作:
并且您必须将
name="submit"
添加到输入提交标记:并确保您的插入安全:
我建议你不再使用
mysql_*
,因为它已被弃用,很快就会在PHP的最新版本中删除if (isset($_POST['submit']))
正在寻找名为submit
的输入 .将按钮更新为以下内容...
<td><input type="submit" name="submit" id="submit" value="Submit" /></td>
检查您的控制台以验证数据是否正在传递给正确的Url . 您也没有在代码中的任何位置使用此变量$ database_connect . 您需要选择正确的数据库 .
在输入类型中缺少提交名称 . 没有它,你的代码将不会在
if (isset($_POST['submit']))
后进一步移动