无法使用循环正确填充带有数组值的表单

时间:2017-06-29 14:07:10

标签: php html arrays

我需要帮助解决这个问题。我正在尝试使用数组的值来填充表单,但它会弄乱表单。

我想在输入字段中显示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; ?>

它应该如下图所示 output image

3 个答案:

答案 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; ?>