【发布时间】:2012-01-18 22:10:57
【问题描述】:
我无法让我的 jQuery ajax 正常工作。它指向 PHP 页面以更新数据库,但从不返回脚本以获得成功或错误选项。
我的代码如下:
$(document).ready(function(){
$("form#updatejob").submit(function() {
function textreplace(x) {return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");}
// we want to store the values from the form input box, then send via ajax below
var job = $("#job").attr("value");
var description = $("#description").val();
description.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
var startDate = $("#startDate").attr("value");
var releaseDate = $("#releaseDate").attr("value");
var status = $("#status").attr("value");
$.ajax({
beforeSend:textreplace(description),
type: "POST",
url: "updatedjob.php",
data: "jobID="+ job +"& description="+ description +"& startDate="+ startDate +"& releaseDate="+ releaseDate +"& status="+ status,
success: function(){
$("form#updatejob").hide(function(){$("div.success").fadeIn();});
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("Status: " + textStatus); alert("Error: " + errorThrown);
}
});
return false;
});
});
还有 PHP:
<?php
include("connect.php");
$job = trim($_POST['job']);
$startDate = trim($_POST['startDate']);
$releaseDate = trim($_POST['releaseDate']);
$mysqlstartdate = date('Y-m-d', strtotime($startDate));
$mysqlreleasedate = date('Y-m-d', strtotime($releaseDate));
$description = trim($_POST['description']);
$status = trim($_POST['status']);
$update = "UPDATE jobs SET startDate = '$mysqlstartdate', releaseDate = '$mysqlreleasedate', description = '$description', status = '$status' WHERE jobID = '$job' ";
$rsUpdate = mysql_query($update);
// or die(mysql_error()); mysql_close();
?>
【问题讨论】:
-
如果你在
success回调函数的第一行加上alert()会发生什么?success: function(){ alert('foobar');... -
您也提供 php 代码似乎是合乎逻辑的。你在回应吗?
-
这里是 PHP:
<?php include("connect.php"); $job = trim($_POST['job']); $startDate = trim($_POST['startDate']); $releaseDate = trim($_POST['releaseDate']); $mysqlstartdate = date('Y-m-d', strtotime($startDate)); $mysqlreleasedate = date('Y-m-d', strtotime($releaseDate)); $description = trim($_POST['description']); $status = trim($_POST['status']); $update = "UPDATE jobs SET startDate = '$mysqlstartdate', releaseDate = '$mysqlreleasedate', description = '$description', status = '$status' WHERE jobID = '$job' "; $rsUpdate = mysql_query($update);// or die(mysql_error()); mysql_close(); ?> -
Jasper:我的成功永远不会运行,因为 PHP 页面永远不会返回到 javascript。
-
如果您将 php 放入问题中(并且格式清晰),您会更快得到答案