Zend Framework × Ajax ではまった。
ビューの無効化については触れている記事がありましたが、
レイアウトの無効化の注意については少なくて苦戦しました。
▼Zend Framework × Ajaxをするときのサンプル
【view側】
$.ajax({
type: "POST",
scriptCharset: "utf-8",
url: "/コントローラ名/ajax",
dataType: "json",
cache: false,
data: {
goods: $("#goods").val()
},
error: function(XMLHttpRequest, textStatus, errorThrown){
alert("error");
},
success: function(res){
$("#select").attr("disabled","");
$("#select").empty();
$("#select").append("");
for(var i in res){
$("#select").append("");
}
}
});
【controller側】
public function ajaxAction()
{
//ビューを使わない
$this->_helper->viewRenderer->setNoRender();
//layout使わない
$layout = $this->_helper->layout;
$layout->disableLayout();
$req = $this->getRequest();
$arr = array(
"computer"=>array(
"computer_aa","computer_bb","computer_cc","computer_dd"
),
"mouse"=>array(
"mouse_aa","mouse_bb","mouse_cc","mouse_dd"
),
"keyboard"=>array(
"keyboard_aa","keyboard_bb","keyboard_cc","keyboard_dd"
)
);
if(array_key_exists($req->getParam("goods"), $arr)){
echo Zend_Json::encode($arr[$req->getParam("goods")]);
}
}
ビューの無効化については触れている記事がありましたが、
レイアウトの無効化の注意については少なくて苦戦しました。
▼Zend Framework × Ajaxをするときのサンプル
【view側】
$.ajax({
type: "POST",
scriptCharset: "utf-8",
url: "/コントローラ名/ajax",
dataType: "json",
cache: false,
data: {
goods: $("#goods").val()
},
error: function(XMLHttpRequest, textStatus, errorThrown){
alert("error");
},
success: function(res){
$("#select").attr("disabled","");
$("#select").empty();
$("#select").append("");
for(var i in res){
$("#select").append("");
}
}
});
【controller側】
public function ajaxAction()
{
//ビューを使わない
$this->_helper->viewRenderer->setNoRender();
//layout使わない
$layout = $this->_helper->layout;
$layout->disableLayout();
$req = $this->getRequest();
$arr = array(
"computer"=>array(
"computer_aa","computer_bb","computer_cc","computer_dd"
),
"mouse"=>array(
"mouse_aa","mouse_bb","mouse_cc","mouse_dd"
),
"keyboard"=>array(
"keyboard_aa","keyboard_bb","keyboard_cc","keyboard_dd"
)
);
if(array_key_exists($req->getParam("goods"), $arr)){
echo Zend_Json::encode($arr[$req->getParam("goods")]);
}
}