我有一个PHP页面,它在顶部有一些JavaScript,我在HEAD标签之间。我的PHP使用“header(”location:/“);”用于将用户重定向到随机点的index.php的代码。我已经缩小了我不能修改头信息错误到这一段javascript,如果我把它拿出来它工作正常,当我把它放回去失败。
我知道错误是由html在其他东西之前输出引起的..但我不知道如何阅读或理解JavaScript。有人能指出我能做什么或应该改变什么?
<script type="text/javascript">
$(document).ready(function(){
//jCarousel Plugin
$('#carousel').jcarousel({
vertical: true,
scroll: 1,
auto: 2,
wrap: 'last',
initCallback: mycarousel_initCallback
});
//Front page Carousel - Initial Setup
$('div#slideshow-carousel a img').css({'opacity': '0.5'});
$('div#slideshow-carousel a img:first').css({'opacity': '1.0'});
$('div#slideshow-carousel li a:first').append('<span class="arrow"></span>')
//Combine jCarousel with Image Display
$('div#slideshow-carousel li a').hover(
function(){
if (!$(this).has('span').length){
$('div#slideshow-carousel li a img').stop(true, true).css({'opacity': '0.5'});
$(this).stop(true, true).children('img').css({'opacity': '1.0'});
}
},
function(){
$('div#slideshow-carousel li a img').stop(true, true).css({'opacity': '0.5'});
$('div#slideshow-carousel li a').each(function(){
if ($(this).has('span').length) $(this).children('img').css({'opacity': '1.0'});
});
}
).click(function(){
$('span.arrow').remove();
$(this).append('<span class="arrow"></span>');
$('div#slideshow-main li').removeClass('active');
$('div#slideshow-main li.' + $(this).attr('rel')).addClass('active');
return false;
});
});
//Carousel Tweaking
function mycarousel_initCallback(carousel){
// Pause autoscrolling if the user moves with the cursor over the clip.
carousel.clip.hover(function(){
carousel.stopAuto();
}, function(){
carousel.startAuto();
});
}
</script>
答案 0 :(得分:1)
您之间不能有header('Location: /');
。它应该在任何输出之前发送。
在此处阅读:http://php.net/manual/en/function.header.php
如果您想在之后重定向用户,请使用HTML重定向。
类似这样的事:<meta http-equiv="Refresh" content="5;url=http://www.abc.com" />
如果我理解你的问题,这与你放入的jQuery代码无关。
答案 1 :(得分:1)
在调用标题之前,您不能拥有任何HTML(“位置...
”即使空格会破坏它,如果你想使用标题位置命令,你的PHP标记应该是文件中的第一个字符,例如
---------
<?php
//your header location code
?>
---------
代表您的文件的虚线和PHP标记之间的任何内容都会破坏标题位置。
答案 2 :(得分:1)
就像其他人所说的那样,它不是jquery代码本身。在<?php ?>
调用之前,您需要摆脱header()
个标记之外的内容。如果您无法修改代码来解决此问题,请查看ar output buffering。这样您就可以输出内容,然后仍然会发出header()
来电。