PHP:根据所选选项加载特定区域

时间:2012-08-06 03:05:00

标签: php codeigniter

我有一个下拉菜单,其中包含来自数据库的动态设置值:

如果选择了某个值,我如何根据所选选项加载特定的view

我现在根据选择的选项加载特定视图:

代码:

        if (isset($_REQUEST['general_options'])) {

            $page = strtolower(str_replace(" ", "", $_REQUEST['general_options']));


            $this->load->view( $page, $data, FALSE);
        }

如何根据所选问题动态生成包含特定问题的表单?

HTML:

<label for="general_options">Quote Type: </label>
    <select name="general_options" id="general_options">

        <option value="Graphic Design">Graphic Design</option>


        <option value="Content Management System">Content Management System</option>


        <option value="Shopping Cart">Shopping Cart</option>


        <option value="E-Mail Marketing">E-Mail Marketing</option>

            </select>

2 个答案:

答案 0 :(得分:0)

对于选项标签的值,您可以使用id代替文本。然后,当用户提交表单时,您可以编写代码(服务器端)以使用所选的id查询数据库。如果您需要以交互方式,则可以使用AJAX。

在jQuery中,有get()post()ajax()方法。你可以使用其中一个。

答案 1 :(得分:0)

我认为php对此会有点过分。我为此使用了jquery。你可以找到jsfiddle here

<label for="general_options">Quote Type: </label>
    <select name="general_options" id="general_options">
        <option value="graphic">Graphic Design</option>
        <option value="content">Content Management System</option>
        <option value="shopping">Shopping Cart</option>
        <option value="marketing">E-Mail Marketing</option>
</select><br/>

<div id="graphic" style="display:none;" class="questions">
    <p>Graphic content 1</p>
    <p>Graphic content 2</p>
    <p>Graphic content 3</p>
</div>

<div id="content" style="display:none;" class="questions">
<p>CMS content 1</p>
<p>CMS content 2</p>
<p>CMS content 3</p>
</div>

<div id="shopping" style="display:none;" class="questions">
<p>shopping content 1</p>
<p>shopping content 2</p>
<p>shopping content 3</p>
</div>

<div id="marketing" style="display:none;" class="questions">
<p>marketing content 1</p>
<p>marketing content 2</p>
<p>marketing content 3</p>
</div>

和jquery代码

$(document).ready(function() {
     $('#general_options').change(function() {

      theVal = $("#general_options").val();
     $('div.questions').each(function(){

        if(this.id == theVal){
            $('div.questions').hide();
            $('#'+this.id).show();
        }
    });         

  });   

});​
    ​