-3

我需要你的帮助。我对下拉值有疑问。我无法从已出现的下拉列表中保存值。


我做了像这个例子一样的一切,但我出现了,而不是。问题是 - 我无法保存我选择的价值。我需要这个值来插入我的数据库。我必须在这里改变什么?


[http://jsfiddle.net/Bksk7/2/]


我的视图.php

<script>
$(function() {
$(".forms").hide();
$("#type").change(function() 
{
    var e = $(this).val();
    if(e == 1 || e == 2) //for example, I have 2 another dropdown
    {
        $(".forms").hide().parent().find('#' + e).show();
    }
});

$('#submit').click(function(e)
{
    e.preventDefault();

    var resolve_data = function() {
        var output = {};
        $('.form-active select, .default select').each(function() 
        {
            output[$(this).attr('value')] = $(this).val();
        });
        return output;
    };
 });
});

</script>

<form action="http:/../insertdata" method="post"> 
<table class="main">
...
<select name="type" id="type"> //it works clear__ dropdown #1
    <?php
    $selected_1 = 'selected="selected"';
    $selected_2 = '';

    foreach ($types as $item) 
    {
        $id=$item['type_id'];
        $selected = $selected_2;
        if (isset($_POST['type']) && $_POST['type'] == $id)
        $selected = $selected_1;
        echo '<option value="'.$id.'" ' . $selected . '>'.$item['title'].'</option>';
    }       

    ?>
    </select>
....
<tr class="forms" id="1">
<td>
Введите категорию:
</td>
<td>
<select name="kategory"  >    //___dropdown #2
    <?php
    $selected_1 = 'selected="selected"';
    $selected_2 = '';

    foreach ($categories1 as $item) 
    {
        $id=$item['id'];
        $selected = $selected_2;
        if (isset($_POST['kategory']) && $_POST['kategory'] == $id)
        $selected = $selected_1;
        echo '<option value="'.$id.'" ' . $selected . '>'.$item['title'].'</option>';
    } 
    ?>

    </select>
</td>
</tr>

//and another the same
<tr class="forms" id="2">
<td>
Введите категорию:
</td>
<td>
<select name="kategory"  >   //__dropdown #3
    <?php
    $selected_1 = 'selected="selected"';
    $selected_2 = '';

    foreach ($categories2 as $item) 
    {
        $id=$item['id'];
        $selected = $selected_2;
        if (isset($_POST['kategory']) && $_POST['kategory'] == $id)
        $selected = $selected_1;
        echo '<option value="'.$id.'" ' . $selected . '>'.$item['title'].'</option>';
    } 
    ?>

    </select>
</td>
</tr>
....
<input type="submit" id="submit" "name="add" value="Добавить" />
</form>

控制器 insertdata.php

....
//I do this for values from dropdown #2 and #3
$add['categories1']=$this->ych_material_model->get_categories('programmnie');
$add['categories2']=$this->ych_material_model->get_categories('teoreticheskie');

没关系,但是当我调用 .... $add['kategory']=$this->input->post('kategory');

在控制器中,它给我'1'。

4

2 回答 2

0

据我所知,您的 resolve_data 函数仅从输入中获取值,下拉列表是选择元素,而不是输入,因此您需要对其进行修改以从选择中获取值。此外,将 name 属性添加到您的选择中。

于 2013-06-04T15:12:12.920 回答
0

我不确定你问的是什么,但要检索你只需要做的选择的当前值$('#myselect').val()

对于php方面:

<form action="process.php" method="post">
    <select name="myselect">
        <option value="1" selected="selected">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
    </select>

    <input type="submit"/>
</form>

确保选择了默认值并选择了方法!

在 process.php 上:

<?php echo 'the value selected from my select : " . $_POST["myselect"]; ?>

就那么简单。

于 2013-06-04T15:15:55.563 回答