0

私はこれを持っています:

<? foreach ($atributes as $key => $value) { ?>
    <select size="10" id="attr_id_<?=$value['id']?>">
        <? foreach ($value['attrs'] as $key => $value) { ?>
        <option value="<?=$value['value_id']?>" ><?=$value['name']?></option>
        <? } ?>
    </select>
<? } ?>

選択したオプションを ajax 経由でコントローラーに送信する必要があります。

私は通常、次のようなコントローラーにデータを送信します。

function save_values() {
    $.post("/dir/page.php",
        {
            api:"update_values",
            attr_id:attr_id,
            value_id:value_id,
    },
    function(data){

    });
}

そして、コントローラーに次のような投稿要求をリッスンさせます。

if($this->input->get_post('api') == "update_values") {
    $attr_id = $this->input->get_post('attr_id');
    ....

次のように、すべての選択 ID 値とオプション値を相互に関連付けたいと思います。

array
    (
        'attr_id_XX' => 'XX',
        'attr_id_XX' => 'XX,
    );

配列である必要はありませんが、それらをリレーショナルな方法で処理する必要があるため、選択した値で各 attr_id を保存できます。

4

2 に答える 2

0

JS関数に対してこのようなことを試すことができます

function save_values() {
    var select_data = {'api': 'update_values', 'value_id': value_id};
    $('select').each(function() {
        select_data[$(this).attr("id")] =  $(this).find(":selected").attr('value');
    });
    $.post("/dir/page.php", select_data,
    function(data){

    });
}
于 2013-01-23T23:14:51.613 に答える
0

選択をフォームで囲み、jQuery のシリアライズ機能を使用できます。

次の点を考慮してください。

(selects には name 属性が存在しなければならないことに注意してください)

<form id="myForm">
    <select name="attr1">
        <option>1</option>
        <option>2</option>
        <option>3</option>
    </select>
    <select name="attr2">
        <option>1</option>
        <option>2</option>
        <option>3</option>
    </select>
    <select name="attr3">
        <option>1</option>
        <option>2</option>
        <option>3</option>
    </select>
</form>

<script type="text/javascript">
    $(document).ready(function() {
        var url = '';   // ...

        $.ajax(url, {
            type: 'post',
            data: $('#myForm').serialize()
        });
    });
</script>
于 2013-01-23T23:02:42.863 に答える