jQuery没有生成正确的queryString

时间:2010-12-19 04:33:17

标签: php jquery

我一直在开发一个使用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

您可以告诉其中缺少许多键及其值。我很感激我能得到任何帮助,因为这真的让我疯狂。感谢。

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;
});