我尝试了很多不同的东西,我似乎无法弄清楚为什么提交按钮在第一次点击时不起作用。我已从代码中删除了if语句,但仍需要两次单击。在第一次单击时,它会刷新页面,当您单击要向下滚动到的提交按钮时,该页面最明显。下面的代码在页面上重复约27次,但歌曲不同。所有这些都在第二次点击后工作,所以我很确定它们是否正确连接。此外,当您单击按钮一次然后单击其他按钮时,它会提交您单击的第一个按钮。
如果有人想知道它实际上是什么样子,我在页面上设置了一个测试帐户。 http://www.saint57records.com/rewards/index.php用户名:test密码:test
<?php
$resultstwo = mysqli_query($con,"Select * FROM users WHERE user_name ='$username'");
while ($row = mysqli_fetch_array($resultstwo))
{
extract($row);
}
?>
<form method="post" action="index.php">
<?php
//If submit form was clicked
if(isset($_POST['endo'])) {
//Server side validation for security purposes
if($points >= 100 AND $endo == 0 AND $savetheworldalbum == 0) {
mysqli_query($con,"UPDATE users SET points = points - 100 WHERE users.user_name = '$username' LIMIT 1");
mysqli_query($con,"UPDATE users SET endo = 1 WHERE users.user_name = '$username' LIMIT 1");
}
}
if ($points >= 100 AND $endo == 0 AND $savetheworldalbum == 0) {
echo '<input type="submit" name="endo" value="100pts">';
} elseif ($endo == 1 OR $savetheworldalbum == 1) {
echo '<input type="submit" name="submit" value="100pts" disabled title="You already earned this track!">';
} else {
echo '<input type="submit" name="submit" value="100pts" disabled title="You need at least 100 points for this download">';
}
?>
</form>
这就是输出
<form method="post" action="index.php">
<input type="submit" name="endo" value="100pts"></form>
答案 0 :(得分:1)
在您决定是否禁用提交按钮之后,看起来您正在设置php变量$endo
。首先阅读$_POST
,收集数据,然后生成HTML。但是,除非你包含设置$ endo的代码
答案 1 :(得分:1)
尝试将提交处理程序放在表单之外(html / php文件的顶部)。
<?php
if(isset($_POST['endo'])) {
//Server side validation for security purposes
if($points >= 100 AND $endo == 0 AND $savetheworldalbum == 0) {
mysqli_query($con,"UPDATE users SET points = points - 100 WHERE users.user_name = '$username' LIMIT 1");
mysqli_query($con,"UPDATE users SET endo = 1 WHERE users.user_name = '$username' LIMIT 1");
}
} else { ?>
<html>
.`
.