我需要在用户点击特定链接后重新加载包含的页面,这会更改锦标赛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;加载以从所选的锦标赛获得记录用户的积分。
答案 0 :(得分:0)
生成并加载页面后,您无法重新执行包含的PHP脚本。所以你有两个解决方案:
使用AJAX从服务器请求info.php,然后使用JavaScript在DIV中插入收到的内容:
的document.getElementById(&#34;信息&#34)。innerHTML的= ReceivedContent;
使用IFRAME代替DIV,并在需要时重新加载。
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>