0

ボタンをクリックするだけで PHP スクリプトを実行するには、この質問への回答を読みました。しかし、次のような「ネストされたボタン」がある場合はどうなるでしょうか。

    <?php
    if(!empty($_POST['act'])) {
        echo "Ready to rock!";
        $someVar = "Rock n Roll";
        if(!empty($_POST['act2'])) {
            echo $someVar;
        } else {
    ?>
        <form method="POST" action="">
            <input type="hidden" name="act2" value="run">
            <input type="submit" value="Rock It!">
        </form>
    <?php
        }
    } else {
    ?>
    <form method="POST" action="">
        <input type="hidden" name="act" value="run">
        <input type="submit" value="Show It!">
    </form>
    <?php } ?>

私の問題はjQueryで解決できると聞きましたが、わかりません。

どなたかお願いします。

4

3 に答える 3

0

@DTukans がここで言ったように、隠しフィールドが必要です。2 番目のフォームを投稿する場合、最初のフォームの act の値を持つ非表示フィールドがなければ、act の値は失われます。

input[type="submit"]phpでは、 などの名前を付けて送信した送信ボタンを確認することもできます<input type="submit" name="form2">。次に、そのフォームを送信したかどうかを確認することもできます: if (isset($_POST['form2'])) {}が、ここではそうではありません。

非表示の入力を使用すると、準備完了です。

于 2012-09-22T12:57:12.273 に答える
0

サーバー上でスクリプトを実行するには、フォームのアクション プロパティを使用します。

<form method="POST" action="myscript.php">

をクリックするとinput type="submit"、ブラウザはフォームを囲むアクションに移動しますinput type="submit"

ブラウザは常に「周囲の」フォームを探すため、ネスティングは問題になりません。

于 2012-09-22T11:30:32.757 に答える
0

問題は 2 番目の形式にあるため、最初の $_POST 変数 IF ステートメントで失敗するため、このコードで呼び出されることはありません。2 番目の形式では変数 "act" を POST しないためです。だからあなたはそれを追加する必要があります

<form method="POST" action="">
    <input type="hidden" name="act" value="run">
    <input type="hidden" name="act2" value="run">
    <input type="submit" value="Rock It!">
</form>

このフォームを使用すると、表示されるはずですecho $someVar;

psフォームアクションプロパティが空の場合、デフォルトでフォームを同じphpスクリプトに送信します

于 2012-09-22T11:43:56.887 に答える