向db mysql发送post请求时的ajax请求问题

时间:2014-06-05 13:36:20

标签: php jquery mysql sql ajax

我遇到了ajax请求和读/写数据库的问题。

我有这个代码将表单提交到数据库:

$(document).ready(function(){
    $('#myForm').on('submit',function(e) {
        $.ajax({
            url:'save.php',
        type:'POST',

        });
        e.preventDefault(); //=== To Avoid Page Refresh and Fire the Event "Click"===
    });
});

我将save.php文件放到同一个代码中:

<?php
include('dbconnection.php');

$Name= $_POST['Name'];
$surname= $_POST['surname'];
$Value= $_POST['Value'];

$sql = "INSERT INTO `results`(`Name`, `surname`, `Value`) VALUES('$Name', '$surname','$Value')";

$retval = mysql_query( $sql );

if(! $retval )
{
  die('Could not enter data: ' . mysql_error());
}   
?>

唯一的问题是这些值没有保存在db中。 我做错了什么?

2 个答案:

答案 0 :(得分:2)

首先你应该知道不推荐使用Mysql php扩展,你可以考虑改用mysqliPDO

要解决您的问题,您应该使用Ajax调用发送数据。例如:

$(document).ready(function(){
    $('#myForm').on('submit',function(e) {
        $.ajax({
            url:'save.php',
        type:'POST',
        data: {'Name':'John', 'surname': 'Jonny', 'Value':'foo'}
        });
        e.preventDefault(); //=== To Avoid Page Refresh and Fire the Event "Click"===
    });
});

要查看它是否有效,您可以使用以下方法调试PHP:

var_dump($_POST);

答案 1 :(得分:1)

您需要序列化表单数据并将其发送到数据库 -

$(document).ready(function(){
    // var myData = $('#myForm').serialize();
    $('#myForm').on('submit',function(e) {
        $.ajax({
            url:'save.php',
            type:'POST',
            data: $(this).serialize()
        });
        e.preventDefault(); //=== To Avoid Page Refresh and Fire the Event "Click"===
    });
});

您还应该开始使用mysqli_或PDO来处理数据库,因为mysql_函数已被弃用。更重要的是,您应该始终验证和清理您的数据 - 否则您会要求SQL注入攻击。