我一直在开发一个使用PHP,jQuery,MySQL和XHTML组合的网站,以便为学生注册钢琴演奏会。除了学习练习之外,这没有任何官方目的,让我们能够共同努力。但是,我在使用PHP与数据库交谈方面遇到了很多问题,我不确定我的问题是什么。但在此之前可以解决这个问题,我遇到了一个非常烦人的问题。出于某种原因,我的jQuery没有为PHP构建完整的帖子URL。
我正在使用谷歌的jQuery版本:1.4.2。使用以下命令构建查询字符串:
var ajaxOpts = {
type: "post",
url: "../php/addRecital.php",
data: "&performance=" + $("#performanceType :selected").text() +
"&groupName=" + $("#groupName").val() +
"&student1fName=" + $("#firstName").val() +
"&student1lname=" + $("#lastName").val() +
"&student1id=" + $("#studentID").val() +
"&student2fname=" + $("#Second_Student_firstName").val() +
"&student2lname=" + $("#Second_Student_lastName").val() +
"&student2id=" + $("#Second_Student_studentID").val() +
"&skillSelect=" + $("#skillSelect :selected").text() +
"&instrument1=" + $("#instument1 :selected").text() +
"&otherInstrument1=" + $("#otherInstrument1").val() +
"&instrument2=" + $("#Instument2 :selected").text() +
"&otherInstrument2=" + $("#otherInstrument2").val() +
"&location=" + $("#locationSelect :selected").text() +
"&roomNumber=" + $("#roomNumber").val() +
"&time=" + $("#timeSlotSelect :selected").text()
,
success: function(data) { ...
除了上述功能之外,还有其他功能,但我认为它不适合这里。然后我使用:
调用代码$.ajax(ajaxOpts);
但是,我得到的不是创建整个查询字符串:
http://sterrcs123.mezoka.com/schoolProject/assign/assign13.html?groupName=&firstName=Samuel&lastName=Terrazas&studentID=23-343-3434&Second_Student_firstName=&Second_Student_lastName=&Second_Student_studentID=&otherInstrument=&Second_Student_Instrument=&roomNumber=2
您可以告诉其中缺少许多键及其值。我很感激我能得到任何帮助,因为这真的让我疯狂。感谢。
答案 0 :(得分:1)
看来您的表单只是在不使用AJAX操作的情况下提交自己。您是否附加了表单的提交事件,然后运行您的ajax调用?您还希望从提交事件处理程序返回false,以防止您在上面看到的默认行为。
示例:
$('#formid').submit(function(){
//your ajax code here.
return false;
});
答案 1 :(得分:0)
如果您正在与ASP.Net Web服务进行通信,那么您需要将数据作为参数的JSON字符串。否则,您可以使用对象文字传递数据(为简洁而截断):
var ajaxOpts = {
type: "post",
url: "../php/addRecital.php",
data: {
performance: $("#performanceType :selected").text(),
groupName: $("#groupName").val(),
student1fName: $("#firstName").val(),
student1lname: $("#lastName").val()
},
success: function(data)
}
根据缺失的值,确保您正在捕获按钮单击/表单提交。
$('form').submit(function (e) {
$.ajax(ajaxOpts);
return false;
});