我需要帮助解决这个问题。我正在尝试使用数组的值来填充表单,但它会弄乱表单。
我想在输入字段中显示af_rating
<?php
$af_skill = array(12, 9, 6, 3, 4, 5, 7);
foreach ($af_skill as $k => $row_af):
?>
<div class="form-group">
<div class="col-sm-5">
<?php
$af_skill_rating = array(1, 2, 5, 4, 3, 2, 4);
foreach ($af_skill_rating as $k2 => $af_rating):
?>
<input type="number" class="form-control" name="af_rating-<?= $row_af[$k]; ?>" value="<?php echo $af_rating[$k2]; ?>" max="5" min="1" required> <br>
<?php endforeach; ?>
</div>
</div>
<?php endforeach; ?>
答案 0 :(得分:1)
此行中有错误,您将值用作数组。所以改变这一行
<input type="number" class="form-control" name="af_rating-<?= $row_af[$k]; ?>" value="<?php echo $af_rating[$k2]; ?>" max="5" min="1" required/>
与
<input type="number" class="form-control" name="af_rating-<?= $row_af[$k]; ?>" value="<?php echo $af_rating; ?>" max="5" min="1" required/>
答案 1 :(得分:1)
您使用的是一个简单的数组PHP Associative Arrays。
如果您有类似的内容,可以使用您的代码
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
foreach($age as $key => $value){
//first time in this loop $key = Peter
//and $value = "35"
}
我在你的代码中改变了它。
<?php
$af_skill = array("12" => "1", "9" => "2", "6" => "5", "3" => "4", "4" => "3", "5" => "2", "7" => "4");
foreach ($af_skill as $key => $value): ?>
<div class="form-group">
<div class="col-sm-5">
<input type="number" class="form-control" name="af_rating-<?php echo $key ?>"
value="<?php echo $value; ?>" max="5" min="1" required> <br>
</div>
</div>
<?php endforeach; ?>
同时检查您的foreach
,因为您正在彼此内部使用foreach循环,以便产生7 * 7输入
答案 2 :(得分:1)
您不需要循环两次。使用您的设置,一个数组中的键将与第二个键中的键匹配(af_skill [0]将与af_skill_rating [0]对应)。我提交以下代码:
<?php
$af_skill = array(12, 9, 6, 3, 4, 5, 7);
$af_skill_rating = array(1, 2, 5, 4, 3, 2, 4);
foreach ($af_skill as $k => $row_af):
?>
<div class="form-group">
<div class="col-sm-5">
<input type="number" class="form-control" name="af_rating-<?= $row_af; ?>" value="<?php echo $af_skill_rating[$k]; ?>" max="5" min="1" required> <br>
</div>
</div>
<?php endforeach; ?>