在我的页面上,我有两个下拉框:一个用于日期列表,另一个用于选项。日期框填充如下:
echo "<form name='selectedDate' action='page.php' method='GET' class='auto-style1'>";
echo "<select name='date' onchange='this.form.submit()'>";
echo "<option value=select>Select a Date</option>";
while ($row = mysql_fetch_array($result))
{
$date = date("m-d-Y",strtotime($row['date']));
if($date==date("m-d-Y"))
{
echo "<option>TODAY</option>";
}
else
{
echo "<option>" . $date . "</option>";
}
}
echo "</select>";
echo "<br />";
echo "<noscript>";
echo "<input type='submit' value='Select'>";
echo "</noscript>";
echo "</form>";
另一个下拉列表填充为:
echo "<form name='selectedFormat' action='page.php' method='GET' class='auto-style1'>";
echo "<select name='option' onchange='this.form.submit()'>";
echo "<option value=select>Select a Option</option>";
echo "<option value=Artist>Artist</option>";
echo "<option value=Song>Song</option>";
echo "</select>";
echo "<br />";
echo "<noscript>";
echo "<input type='submit' value='Select1'>";
echo "</noscript>";
echo "</form>";
现在,您注意到在更改时它们都设置为Submit()
。如果我更改了第一个,则浏览器中的URL将变为page.php?date=02-26-2013
,如果我更改第二个,则浏览器中的URL将变为page.php?option=Song
。
我遇到的问题是,如果我将date
更改为旧日期,然后更改option
,我的页面将恢复为date
当前的日期。我已尝试将操作设置为其他网址:
$url = "musicInfo.php?date=" . $nonFormatedDate . "&option=" . $option;
我改变了两种形式:
echo "<form action='" . $url . "' method='GET' class='auto-style1'>";
如果我echo $url;
,它会正确显示浏览器网址的内容。但是,浏览器URL仍然由我上次使用的下拉列表填充。
我的问题是,如何在提交时传递这两个变量?
例如,如果我将date
更改为01-13-2012
,然后将option
更改为Song
,我该如何确保date
也将被传递?反之亦然。或者,如果我将日期更改为01-12-2012
,是否可以让date
下拉框在重新加载时选中此项?
答案 0 :(得分:1)
正如人们在评论中所说,每次请求只能提交一份表格。 因此,最好的方法是隐藏表单中所需的数据。
在你的php文件中添加此代码
$date = isset($_GET["date"]) ? $_GET["date"] : "";
$option = isset($_GET["option"]) ? $_GET["option"] : "";
然后以第一种形式添加
<input type="hidden" name="option" value="<?php echo $option; ?>"/>
在第二种形式中添加
<input type="hidden" name="date" value="<?php echo $date; ?>"/>
在每个表单提交结果中,您将获得类似
的网址page.php?date=yourdate&option=youroption
致以最诚挚的问候,希望这会有所帮助