2014-01-10 61 views
0

我是CakePHP的新手,問題是我需要創建動態值來下拉框來自mysql的值。以下是我在控制器中使用的代碼:動態下拉框更改取決於CakePHP中的數據庫

$wires = $this->wire->find('all',array('conditions'=>array('wire_id'=>$wire_id))); 
foreach($wires as $key=>$gs) { 
    $options[$gs['wires']['type_of_wire']] = $gs['wires']['type_of_wire']; 
    $options1[$gs['wires']['length']] = $gs['wires']['length']; 
    $options2[$gs['wires']['color']] = $gs['wires']['color']; 
} 

在CTP

echo $this->Form->input('wire', array('type' => 'select', 'class'=>'dropdn', 'options'=> $options, 'selected'=> $options, 'div'=>false, 'label'=>false,'id'=>'metal')); 
echo $this->Form->input('wire', array('type' => 'select', 'class'=>'dropdns', 'options'=> $options1, 'selected'=> $options, 'div'=>false, 'label'=>false,'id'=>'metal')); 
echo $this->Form->input('wire', array('type' => 'select', 'class'=>'dropdned', 'options'=> $options1, 'selected'=> $options, 'div'=>false, 'label'=>false,'id'=>'metal')); 

在這裏,我創建三個下拉框,但問題是,如果我改變下拉線的框中值類型裝置其動態地改變它的正確的長度和顏色下拉框的其餘部分。

我也嘗試過它,但我不能。

+0

這與Cakephp無關。 Jquery最適合這個。 – Costa

+0

@Moshe Katz,是的,我做了它jQuery的功能 – Ram

回答

2

使用AJAX調用動態下拉列表。這樣的事情在你的佈局/在那裏你已jQuery的定義..

$('#metal').change(function() { 
var wire= $(this).val(); 
    $.ajax({ 
    type: "POST", 
    url: "HERE GIVE URL TO YOUR ACTION WHERE YOU FETCH DATA FROM TABLE", 
    data: { wire: wire , submit: "submit" }, 
    success: function(result){ 
       $("#metal").html(result); 
      } 
    }); 
    }); 
}) 

然後在你的控制器,行動AJAX call--

public function get_wires() 
{ 
    $this->autoRender=false; 
    $value=$_POST['wire']; 
    $wire_length = $this->wire->find('list',array('fields' => array('wire_length'),'conditions' => array('wire'=>$value))); 
    foreach($wire_length as $q) 
    {              
     $data[]="<option>".$q."</option>";    
    } 
    print_r($data); 
} 

然後發佈此值你進入鑑於表單.ctp頁面。

相關問題