带有PHP的this.form.submit()是什么?

时间:2013-04-16 20:58:49

标签: php javascript

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 个答案:

答案 0 :(得分:0)

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

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

然后在PHP中检查:

if(isset($_POST["action"]) && $_POST["action"] == "submit") { ... }

答案 1 :(得分: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'];
    }
?>

答案 2 :(得分:0)

您应该检查请求方法。如果你干净利落地设置,那个URL上的POST请求将意味着表单提交。正如您所注意到的那样,您可以尝试提交一个值不存在的值。

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

有关详细讨论,请参阅$_POST vs. $_SERVER['REQUEST_METHOD'] == 'POST'

答案 3 :(得分: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
    }
?>

如果这有帮助,请告诉我。或者,如果我错过了这个问题。