【发布时间】:2016-08-11 15:01:00
【问题描述】:
已更新 - 请帮忙!!!它不会离开页面,但不会再发布到 SQL 服务器
我已经关注了多个在线论坛帖子,试图找到这个问题的答案,但我一直得到同样的结果。我只想发帖而不刷新页面。我的代码如下,请告诉我哪里出错了。
以下是 AJAX 帖子部分(在文件中:edit_project_new.php):
$(document).ready(function() {
$("#proj_submit").click(function(event) {
var pname=document.getElementById('pname').value;
var p_start_date=document.getElementById('p_start_date').value;
var con_start_date=document.getElementById('con_start_date').value;
var con_end_date=document.getElementById('con_end_date').value;
var p_end_date=document.getElementById('p_end_date').value;
var IDF_room_ready=document.getElementById('IDF_room_ready').value;
var AV_install_date=document.getElementById('AV_install_date').value;
var Occupancy_date=document.getElementById('Occupancy_date').value;
var PID=document.getElementById('PID').value;
event.preventDefault();
$.ajax({
type:"POST",
url: "edit_project_new.php?action=update_project",
data: {
name1: PID, name8: p_start_date, name9: con_start_date,
name10: con_end_date, name11: p_end_date,
name12: IDF_room_ready,
name13: AV_install_date, name14: Occupancy_date },
success: function() {
alert("Updated");
}
});
});
});
下面是 HTML 表格和表单(在文件:functions_new.php 中):
<form method="post" action="#">
<input type="hidden" id="PID" name="PID" value="">
...
<input type="button" id="proj_submit" class="ui blue submit button right floated" value="Update">
</form></div>
以下是 SQL 查询部分(在文件:functions_new.php 中):
if ((isset($_GET['action'])) AND ($_GET['action'] == "update_project")) {
$pname= $_POST['pname'];
$PID=$_POST['PID'];
$p_start_date=date('Y/m/d', strtotime($_POST['p_start_date']));
$con_start_date=date('Y/m/d', strtotime($_POST['con_start_date']));
$con_end_date=date('Y/m/d', strtotime($_POST['con_end_date']));
$p_end_date=date('Y/m/d', strtotime($_POST['p_end_date']));
$IDF_room_ready=date('Y/m/d', strtotime($_POST['IDF_room_ready']));
$AV_install_date=date('Y/m/d', strtotime($_POST['AV_install_date']));
$Occupancy_date=date('Y/m/d', strtotime($_POST['Occupancy_date']));
$sql2 = str_replace("'1969/12/31'","NULL","UPDATE Project SET p_start_date='$p_start_date', con_start_date='$con_start_date',con_end_date='$con_end_date',p_end_date='$p_end_date',AV_install_date='$AV_install_date',IDF_room_ready='$IDF_room_ready',Occupancy_date='$Occupancy_date' WHERE PID='$PID'");
if (mysql_query($sql2)) {
echo "Project record updated.";
} else {
echo "Error: " . $sql2 . "<br>" . mysql_error($link);
}
}
每当我发布时,它都会加载一个新页面,其中只有回显“项目记录已更新”。我觉得我很接近,但我做错了什么,所以如果有人能引导我朝着正确的方向前进,我将不胜感激。
【问题讨论】:
-
在点击函数开始时尝试 event.preventDefault
-
您并没有阻止原始表单提交继续进行,因此您开始执行 ajax 请求,同时也执行正常的表单提交。
-
我该如何解决这个问题?
-
首先,您将事件附加到 id 为“提交”的元素,但没有这样的元素。
-
你好 Progrock,我把它改成了 proj_submit