2013-01-23 20 views
0

發送dynamicaly產生選擇我有這樣的:通過AJAX

<? 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){ 

    }); 
} 

和具有控制器聽POST請求等這些:

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。

回答

0

您可以將選擇內容包含在表單中,並使用jQuery的序列化函數。

考慮以下幾點:

(請注意,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> 
+0

我將搜索CodeIgniter如何處理這些值。將研究並報告。謝謝! – user104531

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){ 

    }); 
} 
+0

我正在嘗試這種方式。對不起,請稍後報告/更新這篇文章。謝謝! – user104531