修改PHP函数以在操作后重定向

时间:2014-12-19 17:47:03

标签: javascript php redirect

我想在完成该功能后将以下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>';
}

3 个答案:

答案 0 :(得分:2)

这将有效,$your_redirect_url是它将去的位置。它可以是相对(/ foo / bar)或完全限定(http://foo.com/bar)格式。您可以在PHP Header Redirects here.上阅读更多内容。请注意,Miinimals的答案需要执行额外的PECL库,这是一个ingrain函数。

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>';
}

答案 1 :(得分:0)

您应该使用此处记录的http_redirect:

http://php.net/manual/en/function.http-redirect.php

重定向应该在return语句之前。

答案 2 :(得分:0)

首先找到网址然后通过

重定向到该网址
   header('location:'.$url);

或在js中你可以使用

   window.location.assign($url)
   window.location="http://www.newlocation.com";