我有一个AJAX发布方法,可以在“梯形图”页面上的两个地方工作,而在另一个“匹配”页面上却没有。此方法设置发布php拾取的“玩家ID”并设置会话变量
$("form .singles-player-name").click(function (evt) {
evt.preventDefault();
var viewPlayer = $(this).val();
console.log(viewPlayer);
$.ajax({
url: '',
type: 'POST',
data: {
viewPlayerID: viewPlayer
}
}).done(function (data) {
console.log("Success");
//console.log(data);
window.location.href = "Player";
});
});
工作页面表格:
<form><button type='submit' id='playerInfo' class='singles-player-name' name='viewPlayer' value='",$sglsPlayerID,"'>", $curSGLSRankLName, ", ", $curSGLSRankFName, "</button></form>
设置会话变量
if (!empty($_POST['viewPlayerID'])){
$viewPlayer = isset($_POST['viewPlayerID']) ? $_POST['viewPlayerID'] : 'No data found';
$viewPlayerSql = "SELECT * FROM `PLAYERS` WHERE `ID` LIKE '".$viewPlayer."'";
$viewPlayerQuery = @$conn->query($viewPlayerSql);
$viewPlayerRow=mysqli_fetch_assoc($viewPlayerQuery);
$_SESSION['playerID'] = $viewPlayerRow["ID"];
echo "", $_SESSION['playerID'],"";}
第二个工作版本与第一个存在于同一页面上,但适用于双打玩家:
$("form .doubles-player-name").click(function (evt) {
evt.preventDefault();
var viewPlayer = $(this).val();
console.log(viewPlayer);
$.ajax({
url: '',
type: 'POST',
data: {
viewPlayerID: viewPlayer
}
}).done(function (data) {
console.log("Success");
//console.log(data);
window.location.href = "Player";
});
});
该ajax方法的形式:
<form><button type='submit' id='playerInfo' class='doubles-player-name' name='viewPlayer' value='",$dblsPlayerID,"'>", $curDBLSRankLName, ", ", $curDBLSRankFName, "</button></form>
然后,ajax方法将重定向到播放器页面,并在该页面上拉出该播放器的信息(例如https://urlexample.com/Player)。从这一点来看,这部分有效!但是,我还有另一个页面,“匹配”页面,我希望它在其中做同样的事情,并设置该会话变量,然后重定向到播放器页面,因此在下面有此方法。但是由于某种原因,这个不起作用:
$("form .singlesMatch-player1-name").click(function (evt) {
evt.preventDefault();
var viewPlayer = $(this).val();
console.log(viewPlayer);
$.ajax({
url: '',
type: 'POST',
data: {
viewPlayerID: viewPlayer
}
}).done(function (data) {
console.log("Success");
console.log(data);
window.location.href = "Player";
});
});
不起作用的形式:
<form><button type='submit' id='playerInfo' class='singlesMatch-player1-name' name='viewPlayer' value='",$sglsPlayer1ID,"'>", $P1LN, ", ", $P1FN, "</button></form>
由于某种原因,第二种方法要做的就是将其发布到URL(例如https://urlexample.com/WeeklyMatchUps?viewPlayer=1)中,而不是设置会话变量并重定向到播放器页面(例如https://urlexample.com/Player)。两者之间唯一的不同就是按钮的类名。
答案 0 :(得分:0)
$ sglsPlayer1ID应该是$ sglsPlayerID。
另外,尝试将成功和错误条件添加到AJAX条件中,而不是仅使用完成操作符。这样,您就可以在发生故障时转储有用的错误代码,以便将来更好地解决此类问题。
答案 1 :(得分:0)
我在页面上调用了一个函数,该函数被注释掉,导致在将jQuery添加到页面底部的脚本中之前出错。从该功能中删除该功能即可解决此问题。
向@ line88求助!