使用HTML,PHP,AJAX将数据插入数据库

时间:2013-04-30 07:35:00

标签: php html mysql ajax

我有一个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>

请帮我解决逻辑错误的问题。我猜我错过了一些基本的东西。这已经快两天了。 提前谢谢。

5 个答案:

答案 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(){.....})