-3

あなたの助けが必要です。ドロップダウン値に問題があります。表示されたドロップダウンリストから値を保存できません。


この例のようにすべてを行いましたが、 ではなく が表示されています。問題は、選択した値を保存できないことです。データベースに挿入するには、この値が必要です。ここで何を変更する必要がありますか?


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


myview.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['category']=$this->input->post('category');

コントローラーでは、「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 に答える