【问题标题】:Form not posting one field表格未发布一个字段
【发布时间】:2020-01-02 19:35:21
【问题描述】:

我在这里的 php/html 代码中遇到了问题,我似乎无法找到该错误。该表单似乎发布了除此字段之外的所有内容,该字段似乎每次都返回“空”。 (尝试从表单中的“select”选项设置变量“active”,默认为数据库值。问题是,它总是返回到默认的 [database] 值,无论下面的“select”选项如何......即使在发布表格之后。) *请注意,“活动”的数据库值是 0/1 位值。这会影响结果吗?

php:
$active = (!empty($_REQUEST["active"]))?$_REQUEST["active"]:$row["active"];

html: 
<select class="sel" name="active" id="active">
    <option value="0" <?php echo ($active=="0"?"selected":"");?>>Not Active</option>
    <option value="1" <?php echo ($active=="1"?"selected":"");?>>Active</option>
</select>

【问题讨论】:

  • 另外请注意,我还有其他几个正常工作的选择选项。这是唯一一个不工作的。
  • 如果您转储$_POST 的内容,active 键是否存在但为空,或者根本不存在?
  • active 存在,并且工作正常。新的发展:如果我从 0 值开始(不活跃),事情似乎工作正常。但是,如果我从值 1(活动)开始,我会遇到这个问题。

标签: php forms post select-options


【解决方案1】:

在您的 PHP 代码中,empty 将为字符串“0”返回 true,因此在这种情况下将 $active 设置为预先存在的值。你可能想要的是这样的:

$active = (array_key_exists('active', $_REQUEST) ? (!empty($_REQUEST['active']) ? true : false) : $row['active']);

这会将 $active 变量设置为 true 如果提供的字符串不被视为空(即除 0 或空字符串以外的任何内容),false 如果它存在但为空,并保留现有值如果数组键在数据中不存在。

【讨论】:

  • 谢谢!这帮助我理解并且运作良好!非常感谢您的帮助!
猜你喜欢
  • 2020-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-02
  • 1970-01-01
  • 2016-02-03
相关资源
最近更新 更多