foreach()函数表现不同

时间:2013-04-27 03:09:15

标签: php codeigniter

我正在尝试创建一个简单的用户编辑选项。但是我遇到了foreach()函数的问题。 这是代码:

<div id="edit" class="modal hide fade" aria-labelledby="editModal" aria-hidden="true">
    <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
        <h4 id="editModal">Hi, <?php echo $u['firstname']; ?>. Edit your profile right here</h4>
    </div>
        <?php foreach ($users as $u) {?>
    <div class="modal-body">
                         <?php  $id=$u['id'];?>
        <form class="form-horizontal" action="<?php echo site_url("users/edit/$id")?>" method="post">
            <div class="control-group">
                <label class="control-label">First Name</label>
                <div class="controls">
                    <input type="text" name="firstname" value="<?php echo $u['firstname']; ?>">
                </div>
            </div>

            <div class="control-group">
                <label class="control-label">Last Name</label>
                <div class="controls">
                    <input type="text" name="lastname" value="<?php echo $u['lastname']; ?>">
                </div>
            </div>

            <div class="control-group">
                <label class="control-label">User Name</label>
                <div class="controls">
                    <input type="text" name="username" value="<?php echo $u['username']; ?>">
                </div>
            </div>

            <div class="control-group">
                <label class="control-label">Email</label>
                <div class="controls">
                    <input type="text" name="email" value="<?php echo $u['email']; ?>">
                </div>
            </div>


            <div class="control-group">
            <div class="controls">
                <button class="btn btn-success" name="edit">Save</button>
            </div>
            </div>

        </form>

        </div>

    <div class="modal-footer">
        <button class="btn btn-danger" data-dismiss="modal" aria-hidden="true">Cancel</button>
    </div> 
<?php }?>
</div>

问题是: 当我将foreach()函数放在我的任何div之下时,我可以选择编辑数据库的所有用户,即使那些id尚未通过的用户也是如此。当我点击“保存”按钮时,所有用户都会使用相同的信息进行编辑。

但如果将foreach()函数放在所有div之上,我以前会选择编辑所选用户但不是现在。它总是回应数据库的第一个用户的数据,当我编辑它时,数据库的整个用户都会被编辑。

为什么会这样?我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

基本上,当您使用foorloop时,您为数据库中的每个数据创建了form,当您将foreach放在div我认为$id以下时您的form网址不是所选数据的ID,而是数组的第一个数据。但是当您将foreach放在form元素上方时,这也会迭代数据的$id,这就是为什么它只更新您选择更新的数据的原因。