下拉依赖于php中的其他下拉列表

时间:2013-09-03 11:35:17

标签: php javascript sql

嘿朋友我正在尝试制作两个下拉框。第一个是传感器类型选择。第二个是传感器名称,它应该依赖于第一个。我正在使用MVC架构。这是我正在使用的代码。在viewpage.php我有:

<table>
        <td>
            <label><b>Sensors Types:</b></label>
        </td>
        <td>
            <?php echo form_dropdown('sensor_types', $sensor_types, '#', 'id="sensor_types"  onchange="copy();" ');?>
        </td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>
            <label><b>Sensor Name:</b></label>
        </td>
        <td>
            <?php echo form_dropdown('sensorzs', $sensorzs, '#', 'id="sensorzs"'); ?>
        </td>   
        </tr>
        </table>

并且model.php中的代码是

function sensors_list($node_id) { 
        $this->db->select('sensor_index, sensor_name');
        $this->db->where('node_id', $node_id);
        //$this->db->where('sensor_type', $sensor_types);
        $this->db->order_by('sensor_index');                
        $query = $this->db->get('node_sensor_dtl');         

     }
function get_all_sensors($node_id) {
    $this->db->select('sensor_pk, sensor_name');
    $this->db->where('node_id', $node_id);
    $this->db->order_by('sensor_index');
    $query = $this->db->get('node_sensor_dtl');
    $sensors = array();
    if($query->result())
    {   
        $sensors[''] = '-Select-';  
        foreach ($query->result() as $sensor)
        {
            $sensors[$sensor->sensor_pk] = $sensor->sensor_name;
        }
        return $sensors;
    }
    else        {
        $sensors = NULL;
        return $sensors;
    }
}

和node.php中的代码代码是这样的

function edit(){
    if($this->CI->input->post('editform_id') == NULL) redirect('configuration/node/');

    $view_data['page_title'] = "Node edit details";
    $view_data['page_name'] = "";
    $view_data['detail'] = $this->CI->model->get_node($this->CI->input->post('editform_id'));

    $view_data['sensor_types'] = $this->CI->model->get_all_sensor_types();
    $view_data['sensorzs'] = $this->CI->model->sensors_list($this->CI->input->post('editform_id'));
    $this->CI->load->view('config_node_view', $view_data);
}

过去几天我试过这个,但可以得到结果。搜索了很多网站和博客但我无法获得所需的结果。

1 个答案:

答案 0 :(得分:0)

如果您要创建下拉框,我相信您不应该创建表,而是需要select标记。 我知道这并没有完全回答你的问题,但我相信这应该让你开始。 如果您的PHP代码产生了您想要的结果,请将它们填充到选择标记中并从那里获取。