簡體   English   中英

使用一個提交按鈕取決於另一個先提交的按鈕

[英]Using a submit button dependent on another one being submitted first

我對PHP相對較新,在不相關的領域工作了很多年后回到了學校。 我正在為我父親的一個外部項目工作,遇到了一個表面上似乎很容易解決的問題,我似乎無法解決。

在有問題的頁面上,它顯示一個聯賽中的球員及其得分的列表。 它下面的表單有一個文本框,可讓您輸入名稱和三個按鈕。 一種將姓名添加為玩家(默認分數為0),從玩家列表中刪除該玩家,第三種調整該玩家的分數。 我可以根據需要使用前兩個(“添加”和“刪除”),但是我遇到的問題是分數調整之一。

如果單擊“調整分數”按鈕,它將顯示一個新的文本框以輸入分數以及另一個實際提交分數的按鈕。 問題是當您按下新按鈕來調整分數時, 什么都不會發生,這時我剛剛得到了一個測試“ echo”語句,該語句應在提交時顯示,但這沒有發生。 下面是有問題的代碼。 關於如何解決的任何想法? 感謝您的任何建議。

<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>    

您的scoreAdjust <input>元素必須位於要提交的<form>元素之內。

使用此代碼:

            <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

問題是分數調整輸入的格式不正確:

<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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM