2014-01-10 72 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页面。

相关问题