2011-06-06 52 views
0

我有一個HTML表單,它允許用戶在下拉列表中選擇多個選項。然後我將這些數據作爲發佈數據傳遞給PHP後端(我使用codeigniter作爲後端,並將數據傳遞給模型)。從PHP數組中存儲多個選擇(我正在使用Codeigniter)

在JavaScript中,我可以記錄傳遞的值,如果有多個值,它顯示爲一個正確的,逗號分隔的字符串值。但是,如果將值記錄在PHP中,它只會列出多個值中的最後一個值。我如何獲得它保留所有選擇?這是我的代碼:

FORM:

<form action="http://localhost:8888/index.php/control_form/add_all" method="post" accept-charset="utf-8"> 
<label for="sel_dep">Member Dependencies</label> 
<select id="sel_dep" name="sel_dep" multiple> 
    <option value=""></option> 
    <option value="4">Soundgarden</option> 
    <option value="5">Rage Against the Machine</option> 
    <input type="submit" name="submit" value="Submit" />  
</select> 
</form> 

PHP笨型號:

function edit_member(){ 
    if (isset($_POST['submit'])) { 
    $v_memberdep = $this->input->post('sel_dep'); 
    log_message('debug', 'DEP: ' . $this->input->post('sel_dep')); 
    } 
} 

回答

2

設置你的選擇框f_memberdep[]的名稱[]會告訴PHP,它應該作爲一個傳遞數組,所以你會收到所有的值。

還應該指出,當您的選擇框被稱爲f_memberdep時,您可以記錄一個名爲sel_dep的字段,但這可能只是一種格式化的東西。

+1

請注意,爲了將數據實際傳遞到數據庫字段,您必須爲該數據創建一個完全獨立的表,或者需要序列化數據以便它可以進入單個數據庫字段(這是我做的,感謝你的火 – mheavers 2011-06-06 21:59:29

相關問題