我正在创建一个将数据发布到MySQL的简单表单。你的思维为什么是POST而不是GET?以及这个表单中有一个允许多个字符的描述字段,并且假定GET有其字符限制,我选择使用POST。PHP/Javascript - 通过POST将日期字符串传递给AJAX不起作用
没有进一步的介绍,下面是我的HTML表单。
<form name="addExperienceForm" id="addExperienceForm" style="display:none;">
Title:<input type="text" name="title" id="title" />
From:<input type="text" name="startDate" id="startDate" />
To:<input type="text" name="endDate" id="endDate" />
Description:<textarea type="message" name="description" id="description"></textarea>
<input type="button" value="Submit" onclick="addUserExp()"/>
</form>
这里是在表单中的日期框jQuery的日期选择器代码:
//allow a date range to be selected
$("#startDate").datepicker({
changeMonth : true,
changeYear : true,
dateFormat : "M,yy",
})
$("#endDate").datepicker({
changeMonth : true,
changeYear : true,
dateFormat : "M,yy",
})
这是AJAX的函数调用:
function addUserExp(){
var title = document.getElementById('title').value;
var startDate = document.getElementById('startDate').value;
var endDate = document.getElementById('endDate').value;
var description = document.getElementById('description').value;
var str = "title="+title+"start="+startDate+"end="+endDate+"desc="+description;
var req = getXMLHTTP();
if(req){
req.onreadystatechange = function(){
if (req.readyState == 4) {
// only if "OK"
if (req.status == 200) {
document.getElementById('addNewExp').innerHTML=req.responseText;
} else {
alert("There was a problem while using XMLHTTP:\n" + req.statusText);
}
}
}
}
req.open("post", "addExperience.php", true);
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
req.send(str);
}
我怀疑问题出在AJAX调用,可能与我的'str'变量有关。
-1我认为像你这样的答案应该使用jQuery而不是普通的JS来**在这里插入任何JavaScript任务**至少应该是不鼓励的。普通的JS没有错。此外,这是一个意见,而不是解决方案,也不是对原始问题的诊断。 –
@ gregory90 - 欣赏反馈,但这没有奏效。虽然我同意jQuery会更容易使用,但同样的问题仍然存在。标题和说明正在通过,但日期不是。 – massimorai
@LimH。我从来没有说过他应该使用jQuery。当然 - 普通的JS没有错。使用jQuery也没有错。这是可能的解决办法,我认为他可能对此感兴趣。毕竟他已经在他的代码中使用了一些jQuery。 massimorai我试过这个本地主机上的jQuery解决方案,并且工作得很好。所有数据都通过。 Jimzie解决方案也在起作用。看来你的php代码中有一些错误。 – gregory90