我有一个动态表单,可以同时插入和更新。这适用于更新现有数据,但在插入数据时不起作用,因为$input_fields
为空,因此foreach
会引发错误,并且不会显示表单字段。那么当foreach
为空时,如何在$input_fields
内运行代码?
<?php foreach ($input_fields as $input_field) : ?>
// some demo code below
<div class="form-group">
<label for="">Name</label>
<input class="form-control field_name_input name" type="text" name="data[][name]" value="<?= $input_field['name'] ?>">
</div>
// some demo code below ends
<?php endforeach; ?>
我在foreach
if(!$input_fields) {
$input_fields = [];
};
以及foreach
foreach ((array)$input_fields as $input_field)
但这没有用,因为第一个代码片段只是空数组,所以循环不会发生,第二个几乎是同一个东西。我希望你明白。
编辑1:$ input_fields是我保存表单属性的数组。
答案 0 :(得分:1)
使用默认条目代替空的默认数组:
if(!is_array($input_fields) || empty($input_fields)) {
$input_fields = [
[
'name' => "Hubba Bubba"
// and some more elements
]
];
};
答案 1 :(得分:0)
你的if是不行的,因为你在询问数组是否为空,然后将其分配为空。
如果检查它是否为空,则可以将foreach循环包围在内部而不是这样做 然后它只会在尺寸> gt = = 1
时运行如果你想至少运行一次循环并清空默认值,或者你可以在if块中写下html标签
答案 2 :(得分:0)
所以,我在
foreach
之前添加了这行代码,并且它像我一样工作 预期
if(empty($input_fields)) {
$input_fields = [[]];
};