2

さまざまなことを試しましたが、最初のクリックで送信ボタンが機能しない理由がわかりません。コードから if ステートメントを削除しましたが、それでも 2 回クリックする必要があります。最初のクリックで、下にスクロールする必要がある送信ボタンをクリックしたときに最も明白なページが更新されます。以下のコードはページ上で約 27 回繰り返されていますが、曲は異なります。それらはすべて2回目のクリック後に機能するため、正しく接続されていると確信しています. また、ボタンを 1 回クリックしてから別のボタンをクリックすると、最初にクリックしたボタンが送信されます。

誰かが実際にどのように見えるかを見たい場合は、ページにテストアカウントを設定しました. 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>                                                    
4

2 に答える 2

1

$endo送信ボタンを無効にするかどうかを決定した後、php変数を設定しているようです。最初に読み取り、$_POSTデータを収集してから、HTMLを生成します。ただし、 $endo が設定されているコードを含めない限り、私は本当にわかりません

于 2013-04-12T18:31:16.203 に答える