我遇到了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中。 我做错了什么?
答案 0 :(得分:2)
首先你应该知道不推荐使用Mysql php扩展,你可以考虑改用mysqli或PDO。
要解决您的问题,您应该使用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注入攻击。