提交按钮不能在第一次点击时工作

时间:2013-04-12 18:23:39

标签: php

我尝试了很多不同的东西,我似乎无法弄清楚为什么提交按钮在第一次点击时不起作用。我已从代码中删除了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>                                                    

2 个答案:

答案 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>
.`
.