【问题标题】:Multiselect checkbox returning last result多选复选框返回最后一个结果
【发布时间】:2014-06-09 19:17:22
【问题描述】:

我在 laravel 中有一个表单,将多个复选框组合在一起,供用户选择游戏的统计信息。提交时,即使没有选中任何框,表单也会向服务器发送一个值,这很奇怪。

Laravel:

    @for ($i = 1; $i < count($data['stats']); $i++)

         <input tabindex="1" type="checkbox" name="stats[]" id="{{ $data['stats'][$i]->Field }}" value="{{ $data['stats'][$i]->Field }}"> {{ $data['stats'][$i]->Field }}<br>

        @if ($i == 11)

            </div>

            <div class="col-sm-6">

        @endif

    @endfor

    </div>
</div>

生成此 HTML:

    <div class="row">
        <div class="col-sm-6">


             <input tabindex="1" type="checkbox" name="stats[]" id="Prestige" value="Prestige"> Prestige<br>



             <input tabindex="1" type="checkbox" name="stats[]" id="Level" value="Level"> Level<br>



             <input tabindex="1" type="checkbox" name="stats[]" id="Experience" value="Experience"> Experience<br>



             <input tabindex="1" type="checkbox" name="stats[]" id="Points" value="Points"> Points<br>



             <input tabindex="1" type="checkbox" name="stats[]" id="Kills" value="Kills"> Kills<br>



             <input tabindex="1" type="checkbox" name="stats[]" id="Deaths" value="Deaths"> Deaths<br>



             <input tabindex="1" type="checkbox" name="stats[]" id="TeamWins" value="TeamWins"> TeamWins<br>



             <input tabindex="1" type="checkbox" name="stats[]" id="TeamLosses" value="TeamLosses"> TeamLosses<br>



             <input tabindex="1" type="checkbox" name="stats[]" id="Bonus" value="Bonus"> Bonus<br>



             <input tabindex="1" type="checkbox" name="stats[]" id="AchievementScore" value="AchievementScore"> AchievementScore<br>



             <input tabindex="1" type="checkbox" name="stats[]" id="Demented" value="Demented"> Demented<br>


                </div>

                <div class="col-sm-6">



             <input tabindex="1" type="checkbox" name="stats[]" id="Volatile" value="Volatile"> Volatile<br>



             <input tabindex="1" type="checkbox" name="stats[]" id="Undead" value="Undead"> Undead<br>



             <input tabindex="1" type="checkbox" name="stats[]" id="Scavenger" value="Scavenger"> Scavenger<br>



             <input tabindex="1" type="checkbox" name="stats[]" id="Divinity" value="Divinity"> Divinity<br>



             <input tabindex="1" type="checkbox" name="stats[]" id="Withered" value="Withered"> Withered<br>



             <input tabindex="1" type="checkbox" name="stats[]" id="Killswitch" value="Killswitch"> Killswitch<br>



             <input tabindex="1" type="checkbox" name="stats[]" id="Precise" value="Precise"> Precise<br>



             <input tabindex="1" type="checkbox" name="stats[]" id="Adept" value="Adept"> Adept<br>



             <input tabindex="1" type="checkbox" name="stats[]" id="Utility" value="Utility"> Utility<br>



             <input tabindex="1" type="checkbox" name="stats[]" id="Class" value="Class"> Class<br>



             <input tabindex="1" type="checkbox" name="stats[]" id="Perk" value="Perk"> Perk<br>



        </div>
    </div>

    <button type="submit" class="btn btn-info btn-block" data-after="Updated Statistics|check" style="margin-top: 6px">Update Statistics</button>

    </form>
</div>

在服务器端:

if(Input::has('stats')) {

$stats = Input::get('stats');

if(is_array($stats)) {

    echo 'It is an array!';

    print_r($stats);

} else { echo 'no'; }

}

$stats 总是返回Perk,这是列表中的最后一个。有什么想法吗?

【问题讨论】:

  • 向下滚动,这是最后一个输入。
  • 这看起来很可疑。我怀疑是框架问题。好的,如何检查? 'var_dump($_POST['stats']);'在输入的早期,最好是在'index.php'中。如果在“index.php”中设置了“perk”,那么它就是表单,如果它不存在但稍后设置它就是“框架”。你如何解决它?之后。签入“控制器”可能为时已晚,因为您不知道那时发生了什么处理。

标签: php html forms laravel


【解决方案1】:

这不是表单本身的问题,而是我提交表单的方式。我正在对文件进行 ajax 处理,而从表单中获取的数据并不是最有效的方式。

【讨论】:

  • 感谢您澄清这一点。
猜你喜欢
  • 2015-07-26
  • 1970-01-01
  • 1970-01-01
  • 2021-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-12
  • 1970-01-01
相关资源
最近更新 更多