为foreach循环中的每个选项指定唯一名称

时间:2018-01-22 18:18:27

标签: php loops foreach syntax uniqueidentifier

早上好,

我有以下表格:

<form name="changeImage" method="post" style="padding-bottom: 5%; border-bottom: 1px dotted black; margin-bottom: 5%;" >
    <select name="change[]" id="change" form="changeImage" style="width: 97%;">
        <?php 
            foreach(glob('images/backgrounds/*.*') as $filename){
                echo '<option value="'.$filename.'">'.$filename.'</option>';
            }
        ?>
    </select>
    <input type="submit" name="changeBGimage" id="changeBGimage" value="Change BG Image" style="width: 97%;" />

    <?php 
        if(isset($_POST['changeBGimage'])) {
            $updateBG = "UPDATE grow_backgroundImage SET filePath = '".$_POST['change']."'";
            $updateBGQuery = $conn->query($updateBG);
        }
    ?>
</form>

我无法为$ filename分配唯一值。 经过一些研究,它看起来可以使用隐藏元素或数组来完成。我想使用一个数组,但我不确定如何做到这一点。

目前,在提交表单时,它正在正确地提交到数据库,但是所有值都等于foreach循环中的最后一个值。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

感谢@MonkeyZeus和@FunkFortyNiner的帮助。 使用以下代码解决了这个问题:

<form name="changeImage" method="post" style="padding-bottom: 5%; border-bottom: 1px dotted black; margin-bottom: 5%;" >
<select name="change" id="change" style="width: 97%;">
<?php 
    foreach(glob('images/backgrounds/*.*') as $filename){
        echo '<option value="'.$filename.'">'.$filename.'</option>';
    }
?>
</select>
<input type="submit" name="changeBGimage" id="changeBGimage" value="Change BG Image" style="width: 97%;" />

<?php 
    if(isset($_POST['changeBGimage'])) {
        $updateBG = "UPDATE grow_backgroundImage SET filePath = '".$_POST['change']."'";
        $updateBGQuery = $conn->query($updateBG);

        echo '<pre>'.print_r($_POST, true).'</pre>';
    }
?>
</form>