我想在jquery中提交表单而不刷新页面。
但我不知道为什么数据没有插入数据库。下面的代码有问题吗?
在此之前,我曾提到过here ,希望我没有写错。
HTML
<form id="submit">
<fieldset><legend>Enter Information</legend> <label for="fname">Client First Name:</label>
<input id="vName" class="text" type="text" name="vName" size="20" />
<label for="lname">Client Last Name:</label>
<input id="vLat" class="text" type="text" name="vLat" size="20" />
<input id="vLng" class="text" type="text" name="vLng" size="20" />
<input id="Add" class="text" type="text" name="Add" size="20" />
<button class="button positive"> <img src="../images/icons/tick.png" alt="" /> Add Client </button></fieldset>
</form>
Javascript
$("form#submit").submit(function() {
// we want to store the values from the form input box, then send via ajax below
var vName = $('#vName').val();
var vLat = $('#vLat').val();
var vLng = $('#vLng').val();
var Add = $('#Add').val();
$.ajax({
type: "POST",
url: "ajax.php",
data: "vName="+ vName +"& vLat="+ vLat +"& vLng="+ vLng +"& Add="+ Add,
success: function(){
$('form#submit').hide(function(){$('div.success').fadeIn();});
}
});
return false;
});
dbtools.inc.php
<?php
function create_connection()
{
$link = mysql_connect("localhost", "root", "52082475");
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
mysql_query("SET NAMES utf8");
}
function execute_sql($database, $sql, $link)
{
$db_selected = mysql_select_db($database, $link)
or die("Fail <br><br>" . mysql_error($link));
$result = mysql_query($sql, $link);
return $result;
}
?>
ajax.php
<?php
include ("dbtools.inc.php");
$link = create_connection();
// CLIENT INFORMATION
$vName = htmlspecialchars(trim($_POST['vName']));
$vLat = htmlspecialchars(trim($_POST['vLat']));
$vLng = htmlspecialchars(trim($_POST['vLng']));
$Add = htmlspecialchars(trim($_POST['Add']));
$sql = "INSERT INTO map_db (vName,vLat,vLng,add) VALUES ('$vName','$vLat','$vLng','$Add')";
$result = execute_sql("map",$sql,$link);
mysql_close($link);
header("location:add.html");
exit();
?>
最佳答案
对于初学者来说,您的 PHP 代码并不安全(查找 sql 注入(inject)和准备好的语句)。接下来让你的 PHP 代码回显/打印一些东西——查询的结果。例如,您可能希望使用 JSON 或 XML 来打印查询结果(好||坏)。这样,ajax 就可以在 success
函数中使用它来确定查询是否成功,从而可以适本地显示错误或成功消息。
还响应 ajax 请求中的错误 ( Reference here )。例如:
ajax.({
url:..,
....
error: function() {
...
}
});
通过解释 PHP 的响应,您应该能够确定错误的原因(错误的 mysql 连接、查询、语法、url、数据等)。
祝你好运。
关于php - jquery 提交没有页面刷新问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10052510/