我有一个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
的字段,但这可能只是一个格式化问题。