2012-06-25 30 views
0

我有三个不同的下拉菜单形式,它看起来像这样:形成3个下拉菜单

<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"不能正常工作。

任何帮助将非常感激。

+0

你就不能使目标页面接受不同的表单字段,并建立在你的PHP代码中的'filter_name'? – millimoose

+0

已经尝试过,:( – DadaB

+0

旁白:数值Unicode在HTML转义是可憎的,你应该考虑在PHP搞清楚的字符集设置/服务器 – millimoose

回答

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']); 
} 
?> 
+0

看起来像是接近我所需要的,但点击后发送,即时通讯被重定向。到maindomainname.com/index.php?select_one=R17&select_two=175&select_three=60 顺便说一句,我有一些PHP/HTML代码abeve这一项,如果改变任何东西 – DadaB

+0

更新:我已经删除了所有表错误,并发布你确切的代码给我的,现在打发送,被重定向IM没有结果maindomainname.com/index.php?route=common/home后,也许我应该改变,而不是POST为GET? – DadaB

+0

我已经改变!isset($ _ POST [”发送'])到!isset($ _ POST ['select_one']),它的作用就像是一个魅力,非常感谢! – DadaB

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> 

因此,当您提交表单不是所有的数据被发送,只会造成第一种形式被提交

+0

我已经删除了所有表格标记,并且发布了代码t为OptimusCrime答案,问题是,点击后后,即时被重定向到maindomainname.com(又名什么也没有发生),我想被重定向到maindomainname.com/index.php?route=product/search&filter_name=JOINED选择选项 – DadaB

+0

使用多个方法属性有效吗? – user907860

0

加入在PHP 3个过滤器选项到变量中。

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

它会更少混淆国际海事组织。