将多个变量从HTML传递到Ajax,而不是将多个变量从Ajax发布到php

时间:2013-04-04 08:53:46

标签: php html ajax variables post

我有以下表格,其中有3个值。班级,部门和学校。从数据库中提取的下拉列表中选择学校。 (为简单起见,我这里没有包含这些细节..)(实际上我的代码有效)

<form id="form1" name="form1" method="post" action="">                   
<input type="hidden" name="class" value="someclass">
<input type="hidden" name="section" value="somesection">
<select name="school" id="school">          
<option> "school 1"  </option>  
<option> "school 2"  </option>
<option> "school 3"  </option>
<option> "school 4"  </option>
<option> "school 5"  </option>                  
</select>       
</form>

我正在为Ajax执行此操作,并且只有1个变量(列表中的项目)工作正常,但是在添加类和节值后,我无法将这些3添加到Ajax中,因此我可以将它们发布到PHP中。 (语法可能有误,因为这只是复制粘贴部分代码。)

$("#school").change(function ()
{
 resetValues();


    var school = { school:$(this).attr('value') };
    var class= { class:$(this).attr('value')    };
    var section= { section:$(this).attr('value')};

jQuery.ajax({
                  url: 'getTheData.php',
                  type: "POST",
                  dataType: "xml",
                  data:school&class&section,
                  async: false,
                  success: schoolOnSuccess
            });

当然我正在使用_POST以传统方式获取getTheData.php上的值。

我哪里错了?

3 个答案:

答案 0 :(得分:0)

您可以序列化表单元素并发送,而不是像这样使用。

$("#school").change(function ()
{
   resetValues();
   var data = $("#formid").serialize();
   jQuery.ajax({
              url: 'getTheData.php',
              type: "POST",
              dataType: "xml",
              data:data,
              async: false,
              success: schoolOnSuccess
   });
});

您可以使用表单元素的名称访问php函数中的值。

此方法的优点是,在添加或修改任何表单元素时,您无需更改脚本。

答案 1 :(得分:0)

你可以试试这个:


    $('#school').change(function(){
        $.get('getTheData.php', $('#form1').serialize(),
        function(){
           alert('Success!');
        },function(){
           alert('Unsuccess!');
        });
    });

并且请求将在url上发送数据。

答案 2 :(得分:0)

试试这个,制作你的对象数据

data:{
        'post-field-name' : 'post-field-value'
}

所以你的ajax脚本将成为:

jQuery.ajax({
    url: 'getTheData.php',
    type: "POST",
    dataType: "xml",
    data:{
        'school' : school,
        'class' : class,
        'section' : section
    }
    async: false,
    success: schoolOnSuccess
});