有一个下拉框,其中可以有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,并且不会将以上任何登录业务与其一起发送。
(更好的是,最好让心理学今天没有出现在列表中,即使他们订阅了它,但我怀疑这将是一个更难以破解的坚果。)
实现这一目标的最佳方法是什么?我不是程序员,所以要轻松。
答案 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提供的帮助,请记住您的解决方案,以备将来使用。