2013-04-27 112 views
0

我试图创建一个简单的用户编辑选项。但是我遇到了foreach()函数的问题。 这是代码: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> 

问题是: 当我把下面任何我的div foreach()功能,我可以编辑数据库甚至那些id未获通过的所有用户的选项。当我点击“保存”按钮时,所有用户都可以使用相同的信息编辑。

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

为什么发生这种情况?我错过了什么吗?

+0

什么变量保存你的** $ id **?还没有看到你为$ id赋值的部分 – 2013-04-27 03:14:59

+0

实际上这是整个代码的一部分,$ id被声明在这个代码之上。无论如何,我编辑了代码。 – sabin 2013-04-27 03:20:17

回答

0

基本上当你使用foorloop你创建你的数据库上的每个数据form,当你把你的foreach下方的div IM以为您form网址$id不是所选数据的ID,但第一个数据的阵列。但是,当您将foreach放在form元素上方时,这也会重复您的数据的$id,这就是为什么它只更新您选择更新的数据。

相关问题