【发布时间】:2021-11-07 10:59:23
【问题描述】:
我正在创建一个包含 php 的 html 表单,以便从最终用户那里获取信息。用户提交信息后,顶部会发布一条消息。如果用户在点击提交后没有在任何字段中输入值,则会在顶部显示一条错误消息,并且已经输入的值应该仍然存在于输入中。
我遇到的问题是勾选复选框。
我首先发布了我的 html:
<label><input type="checkbox" name="interests[]" id="rainGauge" value="Make a Rain Gauge" <?php if(in_array("rainGauge", $_POST['interests'])) echo 'checked'; ?>> Make a Rain Gauge </label>
<br><label><input type="checkbox" name="interests[]" id="thermometer" value="Make a Thermometer"<?php if(in_array("thermometer", $_POST['interests'])) echo 'checked'; ?>> Make a Thermometer </label>
<br><label><input type="checkbox" name="interests[]" id="windsock" value="Make a Windsock"<?php if(in_array("windsock", $_POST['interests'])) echo 'checked'; ?>> Make a Windsock</label>
<br><label><input type="checkbox" name="interests[]" id="lightningMouth" value="Make Lightning In Your Mouth"<?php if(in_array("lightningMouth", $_POST['interests'])) echo 'checked'; ?>> Make Lightning In Your Mouth</label>
<br><label><input type="checkbox" name="interests[]" id="hygrometer" value="Make a Hygrometer"<?php if(in_array("hygrometer", $_POST['interests'])) echo 'checked'; ?>> Make a Hygrometer </label><br>
这是我的 php
//foreach loop to show selected Interests
if ((!empty($_POST["interests"])) && ($stopPost !="Y"))
{
echo "You have chosen the following workshops:";
foreach($_POST["interests"] as $checked => $interests)
{
echo "<p><em>" . $interests ."</em></p>";
}
}
我不确定为什么我正在使用的东西不起作用。我在网上搜索了解决方案,这似乎对大多数人都有效,所以我不确定我做错了什么。
【问题讨论】:
-
$_POST["charleston"](和其他)永远不会被设置,那些是你的<select>的values。您的<select>被命名为closestCenter,因此请检查$_POST['closestCenter']。isset($_POST["Y"]也一样,你需要检查输入元素的name,而不是它的值 -
请edit您的问题并在现有代码之外发布新代码。一件事:
... == "Charleston"从来都不是Charleston,you 输入的值是charleston。并在您的value=...属性之前添加一个空格 -
我修复了您提到的问题,现在单选按钮和下拉菜单运行良好!关于如何修复复选框的任何想法?由于数组,我一直在努力解决这个问题
-
@Christineh - 查看我在下面发布的
setstate函数,了解如何处理复选框数组...
标签: php html css dynamic sticky