我正在开发一个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);
?>
答案 0 :(得分:1)
您尚未选择数据库。
在connect.php
$db = mysql_select_db($database_connect);
答案 1 :(得分:0)
$URL = $stm->fetchAll(PDO::FETCH_COLUMN, 0);
答案 2 :(得分:0)
让你的js阻止提交的默认动作:
$(function(){
$("#form1").submit(function(e){
e.preventDefault(); //prevent default
$.post("insert.php", $(this).serialize(),function(data){
// I am done. The page returned by insert_db.php is now in data
});
});
});
您必须在输入提交代码中添加name="submit"
:
<input type="submit" name="submit" id="submit" value="Submit"/>
让您的插入安全:
<?php
require_once('Connections/connect.php');
if (isset($_POST['submit'])){
include 'connections/connect.php';
$fname=mysql_real_escape_string($_POST['fname']);
$lname=mysql_real_escape_string($_POST['lname']);
mysql_query("INSERT INTO users(fname,lname) VALUES ('".$fname.",'".$lname."')");
}
?>
我建议您不再使用mysql_*
,因为它已被弃用,很快就会在最新版本的PHP中删除
答案 3 :(得分:0)
if (isset($_POST['submit']))
正在寻找名为submit
的输入。
将按钮更新为以下内容......
<td><input type="submit" name="submit" id="submit" value="Submit" /></td>
答案 4 :(得分:0)
检入您的控制台以验证数据是否传递给正确的Url。您也没有在代码中的任何位置使用此变量$ database_connect。您需要选择正确的数据库。
答案 5 :(得分:0)
在输入类型中缺少提交名称。没有它,您的代码将不会在if (isset($_POST['submit']))