【发布时间】:2014-06-05 13:36:19
【问题描述】:
我对 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());
}
?>
唯一的问题是这些值没有保存在数据库中。 我做错了什么?
【问题讨论】:
-
首先,您没有在 AJAX 调用中发布表单数据。
-
危险:您使用的是an obsolete database API,应该使用modern replacement。您也容易受到SQL injection attacks的影响,现代 API 可以让您更轻松地从 defend 中获得。
-
在执行 sql 插入之前,通过添加
<?php echo "<pre />"; print_r($_POST); ?>检查是否所有已发布到 php 的变量,这将在您的 ajax 脚本警报中打印出所有已发布的变量。