更改$ _GET后自动重新加载包含的页面

时间:2016-05-22 10:08:48

标签: php jquery

我需要在用户点击特定链接后重新加载包含的页面,这会更改锦标赛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>  

我需要自动刷新div,其中page&#34; info.php&#34;加载以从所选的锦标赛获得记录用户的积分。

3 个答案:

答案 0 :(得分:0)

生成并加载页面后,您无法重新执行包含的PHP脚本。所以你有两个解决方案:

  1. 使用AJAX从服务器请求info.php,然后使用JavaScript在DIV中插入收到的内容:

    的document.getElementById(&#34;信息&#34)。innerHTML的= ReceivedContent;

  2. 使用IFRAME代替DIV,并在需要时重新加载。

  3. HTML:

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

    JavaScript的:

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

答案 1 :(得分:0)

值得注意的是,如果您在SQL语句中使用用户输入,则应使用docs转义它,或冒mysqli_real_escape_string冒险。

WebElement search=new WebDriverWait(driver,15).until(ExpectedConditions.presenceOfElementLocated(By.xpath("//p[@class='btnRow']/input[@name='SearchButton']")));

除此之外,我并不完全确定您的要求,因为它看起来已经有效,但如果没有选择锦标赛,您可以通过不运行PHP代码来使其更强大。

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

您也可以添加表单而不是使用锚点(链接)。

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

答案 2 :(得分:0)

在这种情况下,您可以使用jQuery和jQuery Ajax:

首先,你的头标记应该有jQuery:

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

现在您应该在使用点击并显示相关数据时向info.php发送Ajax请求:

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