2016-05-22 16 views
-1

ユーザーがトーナメントIDを変更する特定のリンクをクリックした後にインクルードしたページをリロードする必要があります。私が持っている主なレイアウトで

info.php

<?php 
    $tournament = $_GET['tournament']; 
    $user = $_SESSION['user_id']; 
    $sql=$conn->query("SELECT *, SUM(points) as total FROM results WHERE tournament_id = '$tournament' and user_id = '$user' "); 
    $data=mysqli_fetch_object($sql); 
    echo 'Logged user '. $_SESSION['name'] .', score '. $data->total . 'in tournament '. $data->tournament_name; ?> 

<div id="info"> 
    <?php include "info.php"; ?> 
</div> 

<div id="main">Select tornament: 
<a href="competition.html?tournament=1">Tournament 1</a><br /> 
<a href="competition.html?tournament=2">Tournament 2</a><br /> 
</div> 

私は、ページ "info.php" 負荷が選ばれたトーナメントからログインしているユーザーのポイントを得るために場所を自動的にdiv要素をリフレッシュする必要があります。

答えて

0

ページが生成されて読み込まれた後に、組み込みのPHPスクリプトを再実行することはできません。サーバーからのinfo.phpを要求し、JavaScriptを使用してDIVで受信したコンテンツを挿入するように

  1. 使用AJAX:だから2つのソリューションを持っている。

    のdocument.getElementById(「情報」)innerHTMLプロパティ= ReceivedContent;

  2. IFRAMEをDIVの代わりに使用し、必要に応じてリロードします。

HTML:

<IFRAME id="info" src="info.php"></IFRAME> 

はJavaScript:

document.getElementById("info").contentWindow.location.reload(); 
0

それはあなたが今までSQL文でユーザー入力を使用する場合は、あなたがmysqli_real_escape_string、またはリスクを使用して、それをエスケープする必要があることは注目に値しますinjection 。あなたがすでに動作しているしているものを見えるよう

$conn->real_escape_string($_GET['tournament']); 

は、それとは別に、私は、どのようなあなたの提示全くわからないんだけど、あなたはトーナメントが選択されていない場合は、PHPコードを実行していないことで、それがより強固にすることができます。

<?php 
    if (isset($_GET['tournament'])) { 
     // Your code here. 
    }; 
?> 

また、代わりにアンカー(リンク)を使用してのフォームを追加することができます。あなたはjQueryとjQueryのアヤックスから使用することができます。この場合

<form method='get' action='competition.html'> 
    <input type='radio' name='tournament' value='1' checked> Tournament 1<br> 
    <input type='radio' name='tournament' value='2' checked> Tournament 2<br> 
    <input type='submit' value='Submit'> 
</form> 
0

:あなたはあなたの頭のタグでjQueryのを持っている必要があり、すべての

まず:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> 

今あなたが情報にAjaxリクエストを送信する必要があります使用をクリックし、ショー関連データの.PHP:

<script> 
$(document).ready(function() { 
    $("#main a").click(
     function(){ 
      var request = $(this).attr("href"); 
      $.ajax({ 
        method: "GET", 
        url: request 
      }).done(function(msg) { 
        $("#info").html(msg); 
      }); 
      return false; 
     } 
    ) 
}); 
</script> 

とにHTMLを変更します。

<div id="main">Select tornament: 
    <a href="info.php?tournament=1">Tournament 1</a><br /> 
    <a href="info.php?tournament=2">Tournament 2</a><br /> 
</div> 
関連する問題