表格有3个下拉菜单

时间:2012-06-25 09:55:25

标签: php javascript html opencart

我有一个包含三个不同下拉菜单的表单,它看起来像这样:

 <FORM METHOD="LINK" ACTION="/search.php" method="get">
  <select style="width:55px;" name="filter_name">
  <option> </option>
  <option>R13</option>
  <option>R14</option>
  <option>R15</option>
  <option>R16</option>
  <option>R17</option>
</select></td></tr>
  <tr><td width="40%">Plotis:</td><td colspan="2"><select style="width:55px;" name="">
  <option> </option>
  <option>165</option>
  <option>175</option>
  <option>185</option>
  <option>195</option>
  <option>205</option>
  <option>215</option>
  <option>225</option>
</select></td></tr>
  <tr><td width="40%">Auk&#353;tis:</td><td colspan="2"><select style="width:55px;" name="">
  <option> </option>
  <option>75</option>
  <option>70</option>
  <option>65</option>
  <option>60</option>
  <option>55</option>
  <option>50</option>
  <option>45</option>
</select></td></tr>
  <tr><td colspan="2" align="center">
<INPUT style="width:80px; height:25px; font-size:14px; font-weight:600; cursor:pointer;" TYPE="Submit" VALUE="Ie&#353;koti">
</FORM>

基本上,我需要将所有3个选项发送到下一页但加入一个变量.. 例如:如果我选择了

<option>165</option>+<option>70</option>+<option>R13</option>

应该像这样发送到index.php:filter_name=165/70/R13

以及如何将所有这些不仅发送到index.php,而是发送到

index.php?route=product/search&FILTER_NAME

ACTION="/index.php"更改为ACTION="/index.php?route=product/search"无效。

任何帮助都会非常感激。

3 个答案:

答案 0 :(得分:1)

你可以尝试这样的事情。但是,您应该检查HTML中的几个错误。表单中有一个嵌套表。

<?php
if (!isset($_POST['send'])) {
?>
<form method="post" action="">
    <select style="width:55px;" name="select_one">
        <option> </option>
        <option value="R13">R13</option>
        <option value="R14">R14</option>
        <option value="R15">R15</option>
        <option value="R16">R16</option>
        <option value="R17">R17</option>
    </select>

    <select style="width:55px;" name="select_two">
        <option></option>
        <option value="165">165</option>
        <option value="175">175</option>
        <option value="185">185</option>
        <option value="195">195</option>
        <option value="205">205</option>
        <option value="215">215</option>
        <option value="225">225</option>
    </select>

    <select style="width:55px;" name="select_three">
        <option></option>
        <option value="75">75</option>
        <option value="70">70</option>
        <option value="65">65</option>
        <option value="60">60</option>
        <option value="55">55</option>
        <option value="50">50</option>
        <option value="45">45</option>
    </select>

    <input style="width:80px; height:25px; font-size:14px; font-weight:600; cursor:pointer;" type="submit" value="send" value="Ie&#353;koti" />
</form>
<?php
}
else {
    header('Location: index.php?route=product/search&filter_name='.$_POST['select_two'].'/'.$_POST['select_three'].'/'.$_POST['select_one']);
}
?>

答案 1 :(得分:0)

问题可能出在无效标记中。您正在使用表格布局,表格在单元格之间分割。这是无效的,因此浏览器可能会以意想不到的方式呈现您的布局。

你可以期待:

<table>
<tr>
<td>
    <form>
        <input>
</td>
<td>
        <input>
    </form>
</td>
</tr>
<table>

但浏览器可以将您的标记呈现为此(2种形式):

<table>
<tr>
<td>
    <form>
        <input>
    </form>
</td>
<td>
    <form>
        <input>
    </form>
</td>
</tr>
<table>

因此,当您提交表单时,并非所有数据都已发送,因此仅提交第一个表单

答案 2 :(得分:0)

将php中的3个过滤器选项加入变量。

$options = $_POST['f1'] . '/' . $_POST['f2'] . '/' . $_POST['f3'];

IMO会让人感到困惑。