我有一个包含三个不同下拉菜单的表单,它看起来像这样:
<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š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š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"
无效。
任何帮助都会非常感激。
答案 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š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会让人感到困惑。