0
echo "<form method=\"post\" action=\"settings.php\" onchange=\"this.form.submit()\">";
echo "Announce New Files: <input type=\"radio\" name=\"announcefiles\" value=\"On\" $checkon1> On";
echo "<input type=\"radio\" name=\"announcefiles\" value=\"Off\" $checkoff1> Off<br>";
echo "</form>";

我正在尝试在按下其中一个单选按钮时提交此表单,但我不确定如何捕获提交。

例如,通常使用提交按钮,您会使用类似于 if(isset($_POST['submit'])) 的内容,但如果表单自动提交,我不知道该怎么做。

4

4 回答 4

0

尝试这个:

如果您将 php 和 html 分开一点,您可能会更轻松。

<form method="post" action="settings.php" onchange="this.form.submit()">
    <fieldset>
        <legend>Announce New Files:</legend>
        <label for="on"><input type="radio" id="on" name="announcefiles" value="On" <?php echo $checkon1 ?> /> On</label>
        <label for="off"><input type="radio" id="off" name="announcefiles" value="Off" <?php echo $checkoff1 ?> /> Off</label>
    </fieldset>
</form>

然后在 settings.php 中的 php 逻辑中(如果您要回发到同一页面,则在表单上方)您可以检查以下值announcefiles

<?php
    if(isset($_POST['announcefiles'])){
        // DO SOMETHING
    }
?>

让我知道这是否有帮助。或者,如果我错过了这个问题。

于 2013-04-16T21:18:49.363 回答
0

您应该检查请求方法。如果您已经干净地进行了设置,那么该 URL 的 POST 请求将意味着表单提交。正如您所注意到的,您可以尝试在不存在值的情况下提交。

if ($_SERVER['REQUEST_METHOD'] === 'POST')

有关更多讨论,请参阅$_POST 与 $_SERVER['REQUEST_METHOD'] == 'POST'

于 2013-04-16T21:01:54.930 回答
0

添加隐藏的输入字段,例如:

<input type="hidden" name="action" value="submit" />

然后在 PHP 中检查:

if(isset($_POST["action"]) && $_POST["action"] == "submit") { ... }
于 2013-04-16T21:01:16.067 回答
0

为您的表格命名并检查isset($_POST['form_name'])或检查收音机的名称isset($_POST['announcefiles'])

此外,您不需要所有的引号转义,您可以使用单引号以及使用多行字符串 - 请参见下面的示例。

echo "
<form method='post' name='form_name' action='settings.php' onchange='this.form.submit()'>
Announce New Files: <input type='radio' name='announcefiles' value='On' $checkon1> On
<input type='radio' name='announcefiles' value='Off' $checkoff1> Off<br>
</form>";

<?php
    // Check if form was submitted
    if (isset($_POST['form_name']) {
        // Form submitted
    }
?>

<?php
    // Check if radio was selected
    if (isset($_POST['announcefiles']) {
        // Form submitted
        echo 'You chose' . $_POST['announcefiles'];
    }
?>
于 2013-04-16T21:01:40.617 回答