2016-05-22 3 views
-1

Мне нужно перезагрузить включенную страницу после того, как пользователь нажмет на эту ссылку, что изменит идентификатор турнира.

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> 

Мне нужно, чтобы автоматически обновить DIV, где страница "info.php" грузы, чтобы вошли точки пользователя от выбранного турнира.

ответ

0

Вы не можете повторно выполнить включенный PHP-скрипт после создания и загрузки страницы. Таким образом, у вас есть два решения:

  1. Использование AJAX Для запроса info.php с сервера, а затем вставить полученный контент в DIV с помощью JavaScript:.

    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. 
    }; 
?> 

Вы также можете добавить форму вместо использования якорей (ссылок).

<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 и JQuery Ajax:

Прежде всего вы должны иметь 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> 
Смежные вопросы