PHP下拉框根据选择重定向到不同的URL?

时间:2011-03-15 22:17:46

标签: php mysql drop-down-menu sql

有一个下拉框,其中可以有1-3个出版物,具体取决于一个人订阅的酒吧:

<?php foreach ($userCurrSubs as $pubChoice) { ?>
<option value="
<?php { echo $pubChoice->redirect_url ?>">
<?php echo $pubChoice->pub_name  ?>
</option>

当用户选择他想要的出版物时,他被重定向到特定的URL(上面代码中的redirect_url)。 redirect_url代码如下所示:

while($row_Recordset2 = mysql_fetch_assoc($pubResultSet)){
$temppubItem = new PubItem();
$temppubItem->pub_name = $row_Recordset2['pub_name'];
$redirectURLtemp = $redirectURL . $temppubItem->pub_name. "/login/login?Read=";
$redirectURLtemp  = $redirectURLtemp . urlencode($fromBasedURL . $temppubItem->pub_name );
$utcCurrentDate = gmdate ('Y-m-d');
$md5Temp = $loginUsername . $utcCurrentDate . 'none' . $Secret;
#error_log("string for md5=".$md5Temp);
$md5Temp = md5($md5Temp);
$redirectURLtemp = $redirectURLtemp . '&Id=' . $loginUsername . '&d=' . $utcCurrentDate . '&r=none' . '&c=' . $md5Temp;
$temppubItem->redirect_url = $redirectURLtemp;
error_log("list URL to choose.. ".$redirectURLtemp);
$userCurrSubs[] = $temppubItem;
};

我们打电话给出版物:GunsAmmo,FieldStream和PsychologyToday。 (上面代码中的pub_name)

GunsAmmo和FieldStream工作正常。但是,当有人选择心理学时,他们需要被发送到一个完全不同的网址,例如http://www.psychologytoday.com,并且不会将以上任何登录业务与其一起发送。

(更好的是,最好让心理学今天没有出现在列表中,即使他们订阅了它,但我怀疑这将是一个更难以破解的坚果。)

实现这一目标的最佳方法是什么?我不是程序员,所以要轻松。

3 个答案:

答案 0 :(得分:1)

我有点困惑(特别是你的第二个代码片段)。如果我正确理解你的问题,你应该对你的元素使用onChange事件。

实施例

<html>
   <select onChange="document.location.href=this[selectedIndex].value">
        <option value="www.example.com"> Option 1 </option>
    </select>
</html>

答案 1 :(得分:0)

这一行之后:

$temppubItem->pub_name = $row_Recordset2['pub_name'];

您可以添加以下内容:

if ($temppubItem->pub_name == 'PsychologyToday') {
   // do your redirect here
   header('Location: http://www.psychologytoday.com/');
   exit();
}

那会立即跳出流并重定向它们。如果您需要先向数据库写一些东西,可以随后将其放在代码中。

或者,您可以使用if ... else,如下所示:

if ($temppubItem->pub_name == 'PsychologyToday') {
    $redirectURLtemp = 'http://www.psychologytoday.com/';
} else {
    // do all that complicated stuff here where you set $redirectURLtemp
    // with the fancy login stuff
}
// do your redirecting after closing your if/else:
header('Location: ' . $redirectURLtemp);

答案 2 :(得分:0)

结束恢复旧代码,结果证明是有效的,我们还没有意识到。这是修复:

$querySQL = "SELECT pub_name FROM pub_subscriber WHERE (pub_name='GunsAmmo' OR pub_name='FieldStream')" ;

这排除了输出中的“PsychologyToday”出版物。

非常感谢XP84和vicTROLLA提供的帮助,请记住您的解决方案,以备将来使用。

相关问题