在页面重新加载时将两个变量传递给URL

时间:2013-02-26 20:03:39

标签: php

在我的页面上,我有两个下拉框:一个用于日期列表,另一个用于选项。日期框填充如下:

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下拉框在重新加载时选中此项?

网站我正在尝试:http://www.legendary-immersion.com/random/test.php

1 个答案:

答案 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

致以最诚挚的问候,希望这会有所帮助