現時点で包括的な答えは見つかりませんでした..別の選択の選択に基づいて選択オプションを変更する方法を学びたいと思います。例えば。カテゴリ1対多のサブカテゴリ
カテゴリとサブカテゴリからオプションを選択して、コンテンツの変更を選択します。手を貸してくれませんか。
現時点で包括的な答えは見つかりませんでした..別の選択の選択に基づいて選択オプションを変更する方法を学びたいと思います。例えば。カテゴリ1対多のサブカテゴリ
カテゴリとサブカテゴリからオプションを選択して、コンテンツの変更を選択します。手を貸してくれませんか。
まず、ルーティングURLを使用して、jqueryを使用してコントロールをアクションに渡す必要があります。
$('# category id').change(function(){
var Id = $('#category id').val();
var url = Routing.generate('route_to_retrieve_subcategory', { 'Id': Id });
$.post(url,
{ 'Id': Id
},function(data){
$('#subcategoryId').html(data);
},"text");
}
});
コントローラー内
/**
* @Route("subcategory/{Id}",name="route_to_retrieve_subcategory" )
* @Template()
*/
public function getSubcategoryAction($Id)
{
//code
return new Response($subcategoryList, 200);
}
注:ルートはrouting.ymlファイルにリストされている必要があります
route_to_retrieve_subcategory:
pattern: /route_to_retrieve_subcategory/{Id}
defaults: {_controller: YourBundle:YourController:getSubcategory}
options:
expose: true
結局、私はこのメソッドを使用することにしました:javascript:
$('select[name*="[category][category]"]').prop('selected', true).change(function(){
var Id = $(this).val();
var url = Routing.generate('route_to_retrieve_subcategory');
$.post(url,
{ 'idCat': Id
}, function(results){
var sub = $('select[name*="[category][category]"]').parent().find('select[name*="[subCategory][]"]');
sub.empty();
$.each(results , function(key, value) {
sub
.append($("<option></option>")
.attr("value",value.id)
.text(value.subCategory));
});
});
});
コントローラ:
public function getSubcategoryAction(Request $request)
{
$Id = $request->get('idCat');
$em = $this->getDoctrine()->getManager();
$entities = $em->getRepository('MyBusinessBundle:SubCategories')->findSubCategories($Id);
$output = array();
foreach ($entities as $member) {
$output[] = array(
'id' => $member->getId(),
'subCategory' => $member->getSubCategory(),
);
}
$response = new Response();
$response->headers->set('Content-Type', 'application/json');
$response->setContent(json_encode($output));
return $response;
}
ルート:
route_to_retrieve_subcategory:
pattern: /route_to_retrieve_subcategory
defaults: { _controller: "MyBusinessBundle:ajax:getSubcategory" }
options:
expose: true
コースにパラメータを渡さない方が好きです。意味がないと感じています。
インスピレーションを与えてくれたshrujanshettyに大いに感謝します。