0

我有一个对 PHP 文件 (insert.php) 进行操作的 HTML 表单。这个 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 文件是 -->

<?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 代码 -->

<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>

请帮我解决我缺少逻辑的地方。我猜我在某处遗漏了一些基本的东西。这段时间差不多有两天了。提前致谢。

4

5 回答 5

1

您应该阻止默认提交表单操作

$("#myButton").click(function(e) {
e.preventDefault();
...
于 2013-04-30T07:38:51.247 回答
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来清理数据和安全性。

于 2013-04-30T07:48:04.250 回答
0

如果我可以建议,使用 PHP5 PDO 来处理数据库。

[1]:http : //php.net/manual/en/book.pdo.php php.net pdo

于 2013-04-30T07:40:25.103 回答
0

我猜您在$_POST数组中缺少索引周围的引号。即使它在某些情况下有效,也可能会产生问题。

请看看这些:

可以在 PHP 中使用 array[key] 吗?

http://fr2.php.net/manual/en/language.types.array.php#language.types.array.foo-bar

于 2013-04-30T07:48:46.393 回答
0

您的问题可能与您的 sql 查询有关。我不知道没有 ajax 是如何工作的,但您应该将 $_POST 数组的索引位置放在单引号中。如$_POST['name']; 更好的方法是将它们存储在变量中并改用这些变量。

$("#button").click改为$("#button").event("click", function(){.....}).

于 2013-04-30T08:48:03.207 回答