2016-09-02 8 views
0

ユーザーが編集ページからレコードを更新できるデータベースがあります。編集内容を送信した後、結果を見るために更新したページにブラウザが自動的に戻るようにしたいと思います。私はこれを達成するためにJSを使用して考えた:フォーム提出後の現在のIDを呼び戻します

if(mysqli_query($con, $sql)){ 
    echo "<script> alert('You have successfully updated.'); 
      window.location.href='javascript:history.go(-2)'; 
      </script>"; 

}else{ 
    echo "An error has occurred. Please go back and check the code: ".mysqli_error($con); 
} 

が、これは目に見える変化に戻っページにしていないリフレッシュページに移動するには、ブラウザを強制します。この方法で結果を見るには、ページを手動でリフレッシュする必要があります。

私も試してみました:

if(mysqli_query($con, $sql)){ 
    echo "<script> alert('You have successfully updated.'); 
      window.location.href='01T.php?id=$id'; 
      </script>"; 

}else{ 
    echo "An error has occurred. Please go back and check the code: ".mysqli_error($con); 
} 

01T.phpがその上に表示された情報のページですが、それが機能しなかったからです。

より適切なPHPソリューションを使用して、結果を表示するために編集したのと同じIDにブラウザをリダイレクトするにはどうすればよいですか?新しいページがロードされるメッセージの存在をチェックするとき、私は、その後、ページ間のメッセージを保存するためにPHPのセッションを使用することになり

if(mysqli_query($con, $sql)){ 
    header("Location: [url]?id=$id"); 

}else{ 
    echo "An error has occurred. Please go back and check the code: ".mysqli_error($con); 
} 
+0

あなたは '01T.php'ページにGETリクエストを送信する必要があります。次のようなものです: 'header(Location:01T.php?userid = 10)'; – Maximus2012

+1

Maximus、そこに現在のID番号を探してくれるものを置くことはできますか? 'header(Location:01T.php?id = $ id)'のようなもの? –

+0

はい。それが私の言いたいことです。 – Maximus2012

答えて

0

使用header。 1つがある場合は、それを表示します。

クエリが正常に実行された場合は、メッセージを保存してから、ユーザーをリダイレクトします。新しいページが読み込まれたら、そのメッセージを取り出して表示します。

<?php 
session_start(); 
... 
if(mysqli_query($con, $sql)){ 
    $_SESSION['message'] = "success"; 
    header("Location: 01T.php?id=$id"); 
    exit; 
}else{ 
    echo "error"; 
} 

は、その後、あなたがメッセージを表示したいすべてのページに:ユーザーのためのメッセージがある場合

<?php 
session_start(); 
$msgHtml = null; //if it stays null, no message will be shown 

//if there is a message. Capture it, then clear it from the session 
if(!empty($_SESSION['message'])){ 
    $message = $_SESSION['message']; 
    unset($_SESSION['message']); 
    //Build the content you want the user to see. Add CSS classes to style it 
    $msgHtml = "<div>$message</div>" 
} 

、それを示しています。メッセージがない場合、何も出力されません。 PHPで

echo $msgHtml; 

またはHTMLで:

<body> 
    <?= $msgHtml ?> 
</body> 
関連する問題