首页 > 解决方案 > 验证 POST 变量的问题

问题描述

我有一个同名的form多个。inputs我正在使用js动态添加更多。

<input type="text" name="links[]" id="addmore"  class="form-control url-link" placeholder="Enter full url">

在我的php 控制器中,我在检查是否$_POST['links']已设置且不为空后更新 db:

if (isset($_POST['links']) && !empty($_POST['links'])) {
                    foreach ($_POST['links'] as $value) {
                        $link = new LessonLinks;
                        $link->lesson_id = $lesson->id;
                        $link->url = $value;
                        $link->save(false);
                    }
                }

我面临的问题是,即使$_POST['links']是空的并且在控制台中我可以看到它是,当form提交时,foreach代码执行并且我在我的数据库中得到空白行。这里有什么问题?没关系,我正在使用 Yii。

标签: phphtmlforms

解决方案


您可以通过额外的空检查跳过空元素。像这样的东西应该工作:

if (!empty($_POST['links'])) {
  foreach ($_POST['links'] as $value) {
    if (!empty($value)) {
      $link = new LessonLinks;
      $link->lesson_id = $lesson->id;
      $link->url = $value;
      $link->save(false);
    }
  }
}

推荐阅读