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

要在服务器上执行脚本,请使用表单的 action 属性:

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

单击 a 时input type="submit",浏览器将转到表单周围的操作input type="submit"

嵌套不是问题,因为浏览器总是会寻找“环绕”的形式

于 2012-09-22T11:30:32.757 回答
0

就像@DTukans 在这里所说的那样,您需要隐藏字段。如果您要发布第二个表单,如果您没有包含第一个表单中的 act 值的隐藏字段,则 act 的值将丢失。

在 php 中,您还可以通过给出input[type="submit"]名称来检查您提交的提交按钮,例如<input type="submit" name="form2">,然后您可以检查您是否通过: 提交了该表单 if (isset($_POST['form2'])) {},但这里不是这种情况。

使用隐藏的输入,你会很高兴。

于 2012-09-22T12:57:12.273 回答
0

问题出在第二种形式中,因此它永远不会在此代码中调用,因为它在第一个 $_POST 变量 IF 语句中失败,因为在第二种形式中您没有 POST 变量“act”。所以你需要添加它

<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 如果表单操作属性是 emtpy,默认情况下它会将表单提交到相同的 php 脚本

于 2012-09-22T11:43:56.887 回答