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']))的内容,但如果表单自动提交,我不知道该怎么做。
答案 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')
答案 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
}
?>
如果这有帮助,请告诉我。或者,如果我错过了这个问题。