我希望以下PHP代码在函数完成后重定向到指定的页面。我尝试了几种不同的方法,但它似乎从未做过任何事情。当前正在执行的操作是在按下调用函数的按钮后,它会重定向到空白页面。任何帮助将不胜感激。
function quote_upvote_button($quoteid, $canvote, $ajaxy=FALSE)
{
$s = ' class="quote_plus" id="quote_plus_'.$quoteid.'"';
if (!$canvote) {
$url = '<a href="?'.urlargs('vote',$quoteid,'plus').'" '.$s.' title="'.lang('upvote').'">+</a>';
if ($ajaxy) {
return '<script type="text/javascript">document.write(''<a href="javascript:ajax_vote('.$quoteid.',1);" '.$s.' title="'.lang('upvote').'">+</a>'');
</script><noscript>'.$url.'</noscript>';
}
return $url;
}
return '<span '.$s.' title="'.lang('cannot_vote_'.$canvote).'">+</span>';
}
这将起作用,$your_redirect_url
是它将要去的位置。它可以是相对 (/foo/bar( 格式或完全限定 (http://foo.com/bar( 格式。您可以在此处阅读有关 PHP 标头重定向的更多信息。请注意,Miinimals 答案需要额外的 PECL 库才能执行,这是一个晶粒度函数。
function quote_upvote_button($quoteid, $canvote, $ajaxy = false, $your_redirect_url = '/')
{
$s = ' class="quote_plus" id="quote_plus_'.$quoteid.'"';
if (!$canvote) {
$url = '<a href="?'.urlargs('vote',$quoteid,'plus').'" '.$s.' title="'.lang('upvote').'">+</a>';
if ($ajaxy)
{
// Redirect to your location, and terminate...
// Will redirect to root on default, or can be overridden/modified as an arg
header("Location: $your_redirect_url");
exit;
}
return $url;
}
return '<span '.$s.' title="'.lang('cannot_vote_'.$canvote).'">+</span>';
}
您应该使用此处记录的http_redirect:
http://php.net/manual/en/function.http-redirect.php
重定向应放在返回语句之前。
您首先找到该网址,然后通过以下方式重定向到该网址
header('location:'.$url);
或者在 js 中您可以使用
window.location.assign($url)
window.location="http://www.newlocation.com";