![](/img/trans.png)
[英]What to use instead of if(isset($_POST['submit'])) for this.form.submit()?
[英]this.form.submit() with PHP isset?
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']))的方式,但是我不确定如果表单自动提交该怎么做。
添加隐藏的输入字段,例如:
<input type="hidden" name="action" value="submit" />
然后在PHP中检查:
if(isset($_POST["action"]) && $_POST["action"] == "submit") { ... }
给您的表单命名并检查isset($_POST['form_name'])
或检查无线电isset($_POST['announcefiles'])
的名称isset($_POST['announcefiles'])
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'];
}
?>
您应该检查请求方法。 如果您进行了整洁的设置,则对该URL的POST请求将意味着提交表单。 正如您所注意到的,您可以尝试不存在值的地方提交。
if ($_SERVER['REQUEST_METHOD'] === 'POST')
尝试这个:
如果您将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
}
?>
让我知道是否有帮助。 或者,如果我错过了问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.