1

我正在尝试为滑块制作一个插件我已经制作了一个管理面板,我可以更新数据库,但是在我输入新数据并按下更新后我遇到了问题 - 它更新了数据库,但它不是显示在页面上。我需要刷新管理页面,然后才能看到更改。

如何自动刷新页面?

  • 我尝试调用 js func 等:window.location.reload()
  • 我尝试了很多,但似乎没有任何效果
  • 我对 JavaScript 有一点了解,但我不知道问题是什么以及如何解决它

代码:

<form  action="" method="post">
<?php
for($i=1; $i<=5; $i++)
{
    $sliderows=getSliderData($i);
    echo '<div id="single-slide-wrap">
            <div id="slide-num">
                <p id="stitle"><strong>#'.$i.'</strong></p>
                <input name="slideradio" type="radio" value="'.$i.'" />
            </div><!--slide-num-->
            <div id="slide-pic">
                <img alt="" src="'.$sliderows['img'].'" style="width: 120px; height: 80px;" />
            </div><!--slide-pic-->
            <div id="slide-text">
                <strong>Img Url: </strong>'.$sliderows['img'].'<br />
                <strong>Title: </strong>'.$sliderows['title'].'<br />
                <strong>Url: </strong>'.$sliderows['url'].'<br />
            </div><!--slide-text-->
                
            </div><!--single-slide-wrap-->';
}
    ?>
    
<h3>update Slider</h3>

IMAGE URL: <input type="text" name="img" />
TEXT: <input type="text" name="text" />
URL: <input type="text" name="url" />
<input type='submit' name="submit" value='update'  /> 
</form>

<?php       

  if (isset($_POST['submit'])) {
    if (isset($_POST['slideradio'])) {

      switch ($_POST['slideradio']) {
        case '1':
          update_slider_db(1);
          break;
        case '2':
          update_slider_db(2);
          break;
        case '3':
          update_slider_db(3);
          break;
        case '4':
          update_slider_db(4);
          break;
        case '5':
          update_slider_db(5);
          break;
      }
    }
  }

  echo '</div>';
}
4

2 回答 2

2

如果你想在 javascript 中重新加载页面(问题被标记为 javascript),你可以使用Location#reload()方法:

document.location.reload(true);

确保编写代码,以免它在无限重定向循环中运行。

如果您想在 PHP 中重新加载页面,您可以发送重定向标头,并且作为一个好公民,您可能希望随请求一起发送 302 状态标头。您可能还应该在抛出该标头后终止您的脚本,以确保不执行以下任何代码(如果有)。

<?php
header("HTTP/1.1 302 Found");
header("Location: " + $_SERVER['REQUEST_URI']);
exit;
?>
于 2013-12-30T10:24:50.233 回答
0

我刚刚找到了答案 - 经过大量挖掘:

我将代码插入
header("location: " . $_SERVER['REQUEST_URI']);
到 update_slider_db 函数中-在更新数据库之后。
然后添加:

//allow redirection, even if my theme starts to send output to the browser
add_action('init', 'do_output_buffer');
function do_output_buffer() {
    ob_start();

}

进入function.php

于 2013-12-30T21:04:42.083 回答