我有一个HTML表单,其中包含对PHP文件(insert.php)的操作。这个PHP文件将我的表单值插入数据库(MySQL)。
HTML
<form method="post" id="myForm" action="insert.php">
First Name:<input type="text" name="Fname" id="Fname" maxlength="12" size="12"/> <br/>
Mark1:<input type="text" name="Mark1" id="Mark1" maxlength="12" size="12"/> <br/>
<p><input type="submit" id="myButton" value="Submit" /></p>
</form>
<div id="someElement">Response is Here:</div>
insert.php文件是 - &gt;
<?php
$con=mysqli_connect("localhost","root","root","student");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql="INSERT INTO student_details (full_name, mark1) VALUES ('$_POST[Fname]', '$_POST[Mark1]')";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
echo "1 record added";
mysqli_close($con);
?>
使用上述方案插入数据没有问题。
我尝试用AJAX做同样的事情,我没有看到任何结果
我的Ajax代码 - &gt;
<script type="text/javascript">
$(document).ready(function(){
$("#myButton").click(function() {
alert("am in the function now");
$.ajax({
cache: false,
type: 'POST',
url: 'insert.php',
data: $("#myForm").serialize(),
success: function(d) {
$("#someElement").html(d);
}
});
});
});
</script>
请帮我解决逻辑错误的问题。我猜我错过了一些基本的东西。这已经快两天了。 提前谢谢。
答案 0 :(得分:1)
您应该阻止默认提交表单操作
$("#myButton").click(function(e) {
e.preventDefault();
...
答案 1 :(得分:1)
你应该改变
<input type="button" id="myButton" value="Submit" />
也改变
<form method="post" id="myForm" action="">
您还应该使用print_r()
检查$_POST array
。
然后尝试echo $sql exit;
您的查询并在PhpMyadmin
中运行以修复价值。
最重要的是,您应该使用mysql_real_escape_string
来清理数据和安全。
答案 2 :(得分:0)
如果我建议,请使用PHP5 PDO处理数据库。
[1]:http://php.net/manual/en/book.pdo.php php.net pdo
答案 3 :(得分:0)
我猜你在 $ _ POST 数组中的索引周围缺少引号。即使它在某些情况下有效,但它可能会产生问题。
请看看这些:
Is it okay to use array[key] in PHP?
http://fr2.php.net/manual/en/language.types.array.php#language.types.array.foo-bar
答案 4 :(得分:0)
您的问题可能出在您的SQL查询中。我不知道如果没有ajax它是如何工作的,但你应该将$ _POST数组的索引位置放在单引号中。例如$_POST['name']
;更好的方法是将它们存储在变量中并使用这些变量。
同时将$("#button").click
更改为$("#button").event("click", function(){.....})
。