我用的框架是cakaphp
html代码
jquery代码
$(document).ready(function() {
// ------------------------------
//add academy
$.ajax({
type : "POST",
url : '/Touches/ajaxTest',
async : false,
data : {},
dataType : 'json',
success : function(acadList) {
var acadHtml = "";
for (var i in acadList) {
acadHtml += "";
}
$("#academy").append(acadHtml);
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
alert('通信失败:' + errorThrown);
}
});
// ------------------------------------
// add profession
$('#academy').change(function(){
var value = $(this).val();
$('#profession option:gt(0)').remove();
if (value != "") {
$.ajax({
type : "POST",
url : '/Touches/ajaxTest2',
async : false,
data : {'acadId' : value},
dataType : 'json',
success : function(porList) {
var porHtml = "";
for (var i in porList) {
porHtml += "";
}
$("#profession").append(porHtml);
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
alert('通信失败:' + errorThrown);
}
});
}
});
});
php代码
public function ajaxTest() {
$rtn = array(
array(
"acadId" => "acad1",
"acadName" => "acad1"
),
array(
"acadId" => "acad2",
"acadName" => "acad2",
),
array(
"acadId" => "acad3",
"acadName" => "acad3",
),
);
return new CakeResponse(array('body' => json_encode($rtn)));
}
public function ajaxTest2() {
$p = $this->request->data;
$rtn = array(
"acad1" => array(
"pro1",
"pro2"
),
"acad2"=> array(
"pro3",
"pro4"
),
"acad3" => array(
"pro5",
"pro6"
),
);
return new CakeResponse(array('body' => json_encode($rtn[$p["acadId"]])));
}
第一个select在onselect方法的时候获取value,然后把值用ajax传送到对应的php页面,php或则参数,把对应的json值传回来,前台再用js或则jQuery把json给解析成字符串或则数据,组成html代码给放到第二个select中