0

私は PHP に比較的慣れていません。無関係な分野で何年も働いた後、学校に戻ってきました。私は父のために社外のプロジェクトに取り組んでいますが、表面的には解決が容易であると思われる問題に遭遇しましたが、解決できないようです。

問題のページには、リーグのプレーヤーのリストとそのスコアが表示されます。その下のフォームには、名前と 3 つのボタンを入力できるテキスト ボックスがあります。1 つはプレーヤーとして名前を追加し (デフォルト スコアは 0)、そのプレーヤーをプレーヤーのリストから削除し、3 つ目はそのプレーヤーのスコアを調整します。最初の 2 つ (「追加」と「削除」) は思い通りに動作するようになりましたが、問題が発生しているのはスコア調整の問題です。

「スコアの調整」ボタンをクリックすると、スコアを入力するための新しいテキスト ボックスと、実際にスコアを送信するための別のボタンが表示されます。問題は、新しいボタンを押してスコアを調整しても何も起こらないことです。この時点で、送信時に表示されるはずのテスト「エコー」ステートメントがそこにありますが、それは起こっていません。以下は問題のコードです。どうすれば修正できるかについて何か考えはありますか?提案をありがとう。

<html>
<head>
    <LINK REL="stylesheet" type="text/css" href="styles/footballTest.css" />
    <title>VFW Football testing</title>
</head>
<body>
    <?php
        $dbConnect = mysql_connect("localhost", "root","");
        $dbName = "vfwleaguetest";
        $getPlayers = "SELECT * FROM `players`";
        if(!$dbConnect)
        {
            echo "<p>Connection failed</p>";
        }   
        if(mysql_select_db($dbName, $dbConnect) === false)
        {
            echo "<p>Could not select the database ".$dbName ."<br/>".mysql_error($dbConnect)." </p>";
        }
        if(isset($_POST['submit']))
        {
            $name=@$_POST['nameAdd'];
            $playerAdd = "INSERT INTO `vfwleaguetest`.`players` (`playerName`, `seasonTotal`) VALUES ('".$name."', '0')";
            if(mysql_query($playerAdd, $dbConnect) === false)
            {
                echo "<p>Error adding player to database: ".mysql_error($dbConnect)."</p>";
            }
        }
        unset($_POST['submit']);
        if(isset($_POST['delete']))
        {
            $name= @$_POST['nameAdd'];
            $playerDelete = "DELETE FROM `vfwleaguetest`.`players` WHERE `players`.`playerName` = '".$name."'";
            if(mysql_query($playerDelete, $dbConnect) ===false)
            {
                echo "<p>Error deleting player to database: ".mysql_error($dbConnect)."</p>";
            }
            else
            {
                echo $name." successfully removed from player list";
            }
        }
        if(isset($_POST['adjust']))
        {
            ?>
            <br/>
            <input type='text' name='scoreAdjust' size=5 />&nbsp;
            <input type='submit' name='fixScore' value='new season total for <?php echo $_POST['nameAdd'];?>' />
            <?php
            if(isset($_POST['fixScore'])) //THIS IS WHERE THE PROBLEM SEEMS TO LIE
            {
                echo "after fixScore click";
                //add sql below
            }
        }   
    ?>
    <form name="players" action="" method="post">
    <?php
        $playerList = mysql_query($getPlayers, $dbConnect);
        echo "<table><th><tr>";
        echo "<td>Player name</td><td>Season total</td></tr></th>";
        while(($row = mysql_fetch_row($playerList)) != false)
        {
            echo "<tr><td>$row[0]</td><td>$row[1]</td></tr>";
        }
        echo "</table>";
    ?>
    Manage players&nbsp;<input type="text" name="nameAdd" />&nbsp;
<input type="submit" name="submit" value="add" />&nbsp;
<input type="submit" name="delete" value="delete" />&nbsp;
<input type="submit" name="adjust" value="adjust score" />
    </form>
</body>
</html>    
4

3 に答える 3

0

の要素は、送信される要素<input>scoreAdjustにある必要があります。<form>

于 2012-07-10T04:26:53.810 に答える
0

このコードを使用します:

            <br/>
            <form method="post">
                <input type='text' name='scoreAdjust' size=5 />&nbsp;
                <input type='submit' name='fixScore' value='new season total for <?php echo $_POST['nameAdd'];?>' />
            </form>
            <?php
            if(isset($_POST['fixScore'])) //THIS IS WHERE THE PROBLEM SEEMS TO LIE
            {
                echo "after fixScore click";
                //add sql below
            }

に送信するフィールドは$_POST、内にある必要がありますform

于 2012-07-10T04:29:31.310 に答える
0

問題は、スコア調整入力が形式から外れていることです。

<input type="text" size="5" name="scoreAdjust">
<input type="submit" value="new season total for aaa" name="fixScore">

必要なもの:

<form method="post" action=''>
  <input type="text" size="5" name="scoreAdjust">
  <input type="submit" value="new season total for aaa" name="fixScore">
</form>
于 2012-07-10T04:31:48.020 に答える