将html表单中的多个选择存储在PHP数组中(I';m使用Codeigner)


storing multiple selections from html form in PHP array (I'm using Codeigniter)

我有一个HTML表单,它允许用户在下拉列表中选择多个选项。然后,我将这些数据作为post数据传递给PHP后端(我使用codeigniter作为后端,数据将传递给模型)。

在javascript中,我可以记录正在传递的值,如果有多个值,它会显示为一个正确的逗号分隔的值字符串。但是,如果在PHP中记录该值,它只列出多个值中的最后一个。如何使其保留所有选择?这是我的代码:

形式:

<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'));
  }
}

将选择框的名称设置为f_memberdep[][]将告诉PHP它应该作为数组传递,这样您将接收所有值。

还应该指出,当您的选择框被称为f_memberdep时,您记录的是一个名为sel_dep的字段,但这可能只是一个格式化问题。