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 に答える