使用参数重新加载页面

时间:2011-06-07 10:41:34

标签: php javascript page-refresh

我有一个页面显示每次重新加载的随机图片。此页面仅显示是否通过$ _GET(表示用户配置文件)传递数字。要转到下一张随机图片,我想要一个提交按钮来重新加载页面。但是,我遇到了两个障碍:

  • 在PHP中使用header函数生成臭名昭着的“已发送的标题”错误。此外,用户被重定向,因为没有传递参数。
  • 在Javascript中,location.reload会重新加载页面,但同样缺少参数会导致相同的结果。

所以我的问题是Javascript中是否可以重新加载带参数的页面?或者您知道另一种解决方案吗?

编辑:使用警告框进行了一些测试,并且网址显示在地址栏中。不知道为什么没有传递参数。

5 个答案:

答案 0 :(得分:2)

您应该想知道为什么会收到headers already sent错误。通常是因为您的流量不正确。确保在生成输出之前处理PHP。检查代码顶部提交的表单 - 并安全地重定向而不执行任何其他操作。应该解决你的问题。

答案 1 :(得分:2)

在另一个主题中,我发现了

window.location.replace(window.location.href)

将保留参数。

答案 2 :(得分:1)

  

在PHP中使用header函数会产生臭名昭着的“已发送的标题”错误。

这很简单:将执行header()调用的代码移到顶部(在任何其他输出之前)。 “已经发送的标题”是臭名昭着的,但也非常容易解决。

  

在Javascript中,location.reload会重新加载页面,但同样缺少参数会导致相同的结果。

然后传递它?我认为这应该有用吗?

window.location( window.location.toString( ) );

答案 3 :(得分:1)

而不是location.reload页面,您可以使用document.location将页面重定向到具有通过GET传递的参数的同一页面。例如,

<?php
    $id = $_GET['user_id'];
    echo "<script type='text/js'>
          document.location='".$_SERVER['PHP_SELF']."&id=".$id."';
          </script>";
?>

答案 4 :(得分:0)

好吧,我不妨发布这篇文章,因为通过javascript和PHP获得一些工作很痛苦,而且我没有足够的时间在ajax中工作。一个简单的解决方法是简单地在表单的action属性中指定参数(特殊标记来自smarty)。

   <form Method="POST" ACTION="my_page.php?param={$smarty.get.i}">
          <!-- PHP: If ( isset($_POST['next']) ) do SQL ... -->
          <input type="submit" name="like" value="I like">
          <input type="submit" name="next" value="Next" >
   </form>