我有以下表格,其中有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§ion,
async: false,
success: schoolOnSuccess
});
当然我正在使用_POST以传统方式获取getTheData.php上的值。
我哪里错了?
答案 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
});