//倉庫庫位級聯
balocationBybawarehouse = function(bainvent_id,balocation){
//bainvent_id,爲傳進來的id , balocation爲傳進來控件
var showResponse=function(transport)
{
var json = eval(transport.responseText);
//json爲控制器傳進來的數組
$(balocation).options.length=1;
for(var i=0;i<json.size();i++){
var oNewNode=new Option();
//new一個option對象,給option對象賦id和值
oNewNode.value=json[i].attributes.id;
oNewNode.text=json[i].attributes.name;
$(balocation).options.add(oNewNode);
}
}
var myAjax = new Ajax.Request(
'/system/basedata/bawarehouse/balocationBybawarehouse',
{
method: 'get',
requestHeaders:{Accept:'application/json'},
parameters:'bainvent_id='+bainvent_id,
// parameters:'bainvent_id='+bainvent_id時傳進來的id
onComplete: showResponse
//指定完成後執行哪個回調函數
}
);
}
BawarehouseController(倉庫的控制器)
#倉庫庫位聯動
def balocationBybawarehouse
@balocations = Balocation.find(:all, :conditions => ['bawarehouse_id = ?',params[:bainvent_id]])
render :text => @balocations.to_json
end
_form.rhtml(你的頁面)
//在倉庫select框上綁定 onchange事件
//baitem_bainvent_id爲你要綁定控件的id
//change爲動作
//balocationBybawarehouse($("baitem_bainvent_id").value,"baitem_balocation_id");
第一個參數爲要綁定控件的值
第二個參數爲要影響控件的id
$("baitem_bainvent_id").observe('change',function(){
balocationBybawarehouse($("baitem_bainvent_id").value,"baitem_balocation_id");
});