2017-06-22 11 views
0

私はバックオフィスフォームのドロップダウンリストを変更するためにいくつかのフィールドを表示または非表示にしたいと思っています。つまり、選択タイプが最初のドロップダウンリストリストの「カテゴリ」である場合、(カテゴリ選択)のドロップダウンを表示し、他の2つのドロップダウン(商品の選択、オファーの選択)を非表示にする必要があります。そのフィールドをドロップダウンプレstashopヘルパークラスのドロップダウンリストをバックオフィスフォームで選択してドロップダウンリストを表示する

$this->fields_form = array(
    'legend' => array(
     'title' => $this->l('My Back offie form:'), 
     'image' => _PS_ADMIN_IMG_ . 'information.png', 
    ), 
    'input' => array(
     array(
      'type' => 'select', 
      'label' => $this->l('Select Type'), 
      'name' => 'slider_type', 
      'id' => 'slider_type', 
      'options' => array(
       'query' => $slidertypes_option, 
       'id' => 'slider_type', 
       'name' => 'slider_type' 
      ) 
     ), 
     array(
      'type' => 'select', 
      'label' => $this->l('Select Category'), 
      'name' => 'id_category', 
      'id' => 'id_category', 
      'options' => array(
       'query' => $category_options, 
       'id' => 'id_category', 
       'name' => 'category_name' 
      ) 
     ), 
     array(
      'type' => 'select', 
      'label' => $this->l('Select Offer'), 
      'name' => 'id_category', 
      'id' => 'id_category', 
      'options' => array(
       'query' => $offers_options, 
       'id' => 'id_category', 
       'name' => 'category_name' 
      ) 
     ), 
     array(
      'type' => 'select', 
      'label' => $this->l('Select Product'), 
      'name' => 'id_product', 
      'id' => 'product', 

      'options' => array(
       'query' => $products, 
       'id' => 'id_product', 
       'name' => 'name' 
      ) 
     ), 
     //               array(
     //               
     'submit' => array(
      'title' => $this->l('Save'), 
      'class' => 'button' 
     ), 
     'cancel' => array(
      'title' => $this->l('Cancel'), 
      'class' => 'button' 
     ) 
    ); 

は、任意のアイデアを共有してください選択 最初のドロップダウンに基づいて表示されます。

+0

あなたがレンダリングされたヘルパーを返す前に、いくつかのJavaScriptを追加、または管理テンプレートを作成して、異なる選択 –

答えて

0

jqueryのを使用して、フォームのハンドル:

$(document).ready(function(){  
adminControl(); 
$('#slider_type').change(function(){ 
    adminControl(); 
}); 
}); 
function adminControl(){ 
//main value 
var type_value = $('#slider_type').val(); 

var handle1 = $('select#xxxx').parents().eq(2); 
var handle2 = $('select#yyyy').parents().eq(2); 

switch (type_value) { 
    case 'category': 
     handle1 .show(500); 
     handle2 .hide(500); 
     break; 
    case 'cms': 
     handle1 .hide(500); 
     handle2 .show(500); 
} 
} 
+0

その作業罰金のスタイリングを管理するために、その中にいくつかのJSを配置する必要がありありがとう! – bhatt

関連する問題