2013-04-27 55 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,這就是爲什麼它只更新您選擇更新的數據。