Php 从下拉列表中传递值而不是id
如何传递下拉列表中的确切文本,而不是其值。 我用的是CodeIgniterPhp 从下拉列表中传递值而不是id,php,codeigniter,model-view-controller,listbox,dropdown,Php,Codeigniter,Model View Controller,Listbox,Dropdown,如何传递下拉列表中的确切文本,而不是其值。 我用的是CodeIgniter $tableNames = array_column($tableData, 'TABLE_NAME'); asort($tableNames); echo form_open('index.php/TableController'); echo form_dropdown('TABLE_NAME', $tableNames); echo "<br&g
$tableNames = array_column($tableData, 'TABLE_NAME');
asort($tableNames);
echo form_open('index.php/TableController');
echo form_dropdown('TABLE_NAME', $tableNames);
echo "<br><br>";
echo form_submit("submit1", "Table");
echo form_close();
$tableNames=array_column($tableData,'TABLE_NAME');
asort(表格名称);
echo form_open('index.php/TableController');
echo form_下拉列表('TABLE_NAME',$tableNames);
回声“
”;
echo表格提交(“提交”、“表格”);
回声形式_close();
这将导致传递选定项的id,而不是其文本。
我不想传递整个数组并用id再次选择文本,我只想将文本传递给我的控制器。Codeigniter 3.0.4表单下拉列表(名称、选项) 结果:
<select name="shirts">
<option value="small">Small Shirt</option>
<option value="med">Medium Shirt</option>
<option value="large">Large Shirt</option>
<option value="xlarge">Extra Large Shirt</option>
</select>
小衬衫
中号衬衫
大衬衫
特大号衬衫
参考:你的问题有点不清楚。但在将数组项从控制器传递到视图之前,将其交给它会更好 你可以试试这个 文件名:Test.php
<?php
class Test extends CI_Controller {
public function index() {
$data['records'] = array(
array(
'id' => 2135,
'value' => 'John',
),
array(
'id' => 3245,
'value' => 'Sally',
),
array(
'id' => 5342,
'value' => 'Jane',
),
array(
'id' => 5623,
'value' => 'Peter',
)
);
$this->load->view('test', $data);
}
public function submit_test() {
var_dump($this->input->post('test'));
exit;
}
}
产生
这就创造了奇迹:
$tableNames = array_combine($tableNames, $tableNames);
我得到了键和值相同的关联数组,因此如果我将其传递到表单下拉列表,则选项值和文本都将相同。不要设置值。默认浏览器行为是在没有值时发送选项文本。e、 g.
Foo
发送Foo
,而Foo
将发送bar
。或者只是将文本设置为值:Foo
。请注意,提及id
会令人困惑。DOMid
字段不是随表单提交的。不确定您在问什么,但在典型的下拉列表中,这是显示给用户的,等等……感谢您的回答,很明显我可以用纯html来完成,但CodeIgniter框架是否提供了它?我在文件中没有找到答案。
<?php
echo form_open_multipart('index.php/test/submit_test');
$array_items = array_column($records, 'value', 'id');
$s = array(
'class'=> 'form-control'
);
echo form_dropdown('test', $array_items, '', $s);
echo form_submit("submit", "Table");
echo form_close();
?>
$tableNames = array_combine($tableNames, $tableNames);