我在同一页面上有几个HTML <select>
下拉菜单,用于略有不同的上下文中。它们都使用从数据库查询构建的php变量中存储和回显的相同选项数据。
我遇到的问题是一个工作并返回所选值,而另一个只返回第一个选项的值。
这是我的标记:
<select name="Home_State" id="Home_State">
<?php echo $states;?>
</select>
有效的选项:
<option value="1">AL</option><option value="2">AK</option><option value="4">AZ</option><option value="5">AR</option><option value="6">CA</option><option value="8">CO</option><option value="9">CT</option><option value="10">DE</option><option value="11">DC</option><option value="12">FL</option><option value="13">GA</option><option value="15">HI</option><option value="16">ID</option><option value="17">IL</option><option value="18">IN</option><option value="19">IA</option><option value="20">KS</option><option value="21">KY</option><option value="22">LA</option><option value="23">ME</option><option value="24">MD</option><option value="25">MA</option><option value="26">MI</option><option value="27">MN</option><option value="28">MS</option><option value="29">MO</option><option value="30">MT</option><option value="31">NE</option><option value="32">NV</option><option value="33">NH</option><option value="34">NJ</option><option value="35">NM</option><option value="36">NY</option><option value="37">NC</option><option value="38">ND</option><option value="39">OH</option><option value="40">OK</option><option value="41">OR</option><option value="42">PA</option><option value="44">RI</option><option value="45">SC</option><option value="46">SD</option><option value="47">TN</option><option value="48">TX</option><option value="49">UT</option><option value="50">VT</option><option value="51">VA</option><option value="53">WA</option><option value="54">WV</option><option value="55">WI</option><option value="56">WY</option>
这是我无效的标记
<select name="Mail_State" id="Mail_State">
<?php echo $states;?>
</select>
无法使用的选项
<option value="1">AL</option><option value="2">AK</option><option value="4">AZ</option><option value="5">AR</option><option value="6">CA</option><option value="8">CO</option><option value="9">CT</option><option value="10">DE</option><option value="11">DC</option><option value="12">FL</option><option value="13">GA</option><option value="15">HI</option><option value="16">ID</option><option value="17">IL</option><option value="18">IN</option><option value="19">IA</option><option value="20">KS</option><option value="21">KY</option><option value="22">LA</option><option value="23">ME</option><option value="24">MD</option><option value="25">MA</option><option value="26">MI</option><option value="27">MN</option><option value="28">MS</option><option value="29">MO</option><option value="30">MT</option><option value="31">NE</option><option value="32">NV</option><option value="33">NH</option><option value="34">NJ</option><option value="35">NM</option><option value="36">NY</option><option value="37">NC</option><option value="38">ND</option><option value="39">OH</option><option value="40">OK</option><option value="41">OR</option><option value="42">PA</option><option value="44">RI</option><option value="45">SC</option><option value="46">SD</option><option value="47">TN</option><option value="48">TX</option><option value="49">UT</option><option value="50">VT</option><option value="51">VA</option><option value="53">WA</option><option value="54">WV</option><option value="55">WI</option><option value="56">WY</option>
然后使用CI获取表单值:
$Mail_State = $this->input->post('Mail_State');
echo $Mail_State
无论选择了什么选项,都返回第一个选项的值。
答案 0 :(得分:2)
啊,我刚刚设法解码你实际要问的内容 - 因为这个问题还不清楚。
第一个选项是指第一个HTML块(已经重复,在页面后面有不同的名称/ ID),而不是第一个<option>
标记。
我实际上已经编写了一个测试程序,有或没有尾随/,以及默认选项(如<option selected="selected" value="4">AZ</option>
),我仍然无法让它只返回第一个选择的选项标签。当我print_r($_POST)
时,他们会返回单独的ID。
因此,我认为您的问题可能存在于其他地方。
How do I get all the results from a select multiple HTML tag?
<select name="var[]" multiple="yes">
.....
</select>
答案 1 :(得分:1)
我没有完全理解错误,但似乎你正在使用CodeIgniter,为什么不利用它的Form Helper,这可能会使你的代码更容易,也许也可以解决问题。
在你的控制器中试试这个:
$Home_State = $this->input->post('Home_State');
$Mail_State = $this->input->post('Mail_State');
在你看来:
echo form_dropdown('Home_state', $states, $Home_State);
echo form_dropdown('Mail_State', $states, $Mail_State);
答案 2 :(得分:0)
如果第一个选择的尾随/上方修复它,那么在短期内执行此操作,直到您可以弄清楚到底发生了什么。在你没有陷入困境之后,专注于解开谜团。另外,毛发多选,我相信你的名字属性应该在末尾有[]表示它将持有一个值数组,即name =“Mail_State []”
答案 3 :(得分:0)
一些事情:
/
。这将影响数据的提交方式。print_r($_REQUEST)
,以查看值是什么。 (你正在使用的课程也可能不支持倍数。)答案 4 :(得分:0)
是否还有其他表单输入在表单中也有相同的名称?有时它发生在我身上。我忘了在复制和粘贴多个表单输入后我没有更改其他表单名称。
答案 5 :(得分:0)
您的其他下拉列表是否可能在表单之外声明?