Wordpress - 更新数据库后如何刷新页面

时间:2013-12-30 10:17:12

标签: javascript php wordpress sql-update browser-refresh

我正在尝试将插件设为滑块 我已经建立了一个管理面板,我可以更新数据库。 但是在我放入新数据并按下更新后我发现了一个问题 - 它更新了数据库,但它没有显示在页面上。 我需要刷新管理页面,然后才能看到更改。

如何自动刷新页面?

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

代码:

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



}

2 个答案:

答案 0 :(得分:1)

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

document.location.reload(true);

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

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

<?php
header("HTTP/1.1 302 Found");
header("Location: " + $_SERVER['REQUEST_URI']);
exit;
?>

答案 1 :(得分: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