2012-10-08 34 views
0

下面是一個函數,它用數據庫中的現有用戶輸出表單,並帶有複選框和提交按鈕。用戶選擇要移除的一個或多個用戶並提交表單。我現在正在處理的是在js中實現一個確認框(「你確定要刪除...」),它應包含用戶想要刪除的用戶。從變量到隱藏表單字段的奇怪輸出

由於這個原因,我把用戶名放在一個隱藏字段中,js函數將從中檢索用戶名。問題是,不僅用戶名被放入隱藏的輸入字段值屬性,而且還有幾個輸入字段(!?)。如果我在代碼中硬編碼,例如'username1,username2',它應該像它應該那樣工作,但如果我使用變量$ users,則不會。

public function ShowUsers($userArray) { 

     $userIdArray = $userArray[0]; 
     $userNameArray = $userArray[1]; 
     $users = implode(",", $userNameArray); 

     echo $users;  // username1,username2... 

     $nrOfUsers = count($userIdArray); 

     for ($i = 0; $i < $nrOfUsers; $i++) { 
      $users .= "<label for='$userIdArray[$i]'> 
         $userNameArray[$i] 
         <input type='checkbox' name='$this->_checkBox' value='$userIdArray[$i]' /><br/> 
         </label>"; 
     } 

     $userList = "<div class='userList'> 
        <form id='form3' method='post' action=''> 
         <fieldset> 
          <p>Existing users</p> 
          $users 
          <input type='hidden' value='$users' /> 
          <input type='submit' id='$this->_submitRemove' name='$this->_submitRemove' Value='Ta bort' /> 
         </fieldset> 
        </form> 
        </div>"; 

     return $userList; 
    } 

輸出如下:

<input type='hidden' value='username1,username2<label for='47'> 
         username1 
         <input type='checkbox' name='check[]' value='47' /><br/> 
         </label><label for='50'> 
         username2 
         <input type='checkbox' name='check[]' value='50' /><br/> 
         </label>' /> 

我只是不明白爲什麼會這樣? $ users的內容(在本例中爲'username1'和'username2')與預期的一樣,但爲什麼input和label標籤會放入value屬性?

+4

因爲你改變$用戶變量在上面的for循環,追加更多的內容。 – MLeFevre

+0

您是否嘗試刪除頂部的'echo $ users;'? –

回答

4

問題出在您的for循環中。在那裏,您將所有HTML附加到變量$users,該變量已經是$users == username1,username2。如果您在完成for循環後執行echo $users;或甚至var_dump($users);,您會看到。
你想在for循環中實現什麼功能?你頗具意味

for ($i = 0; $i < $nrOfUsers; $i++) { 
    echo "<label for='$userIdArray[$i]'> 
       $userNameArray[$i] 
       <input type='checkbox' name='$this->_checkBox' value='$userIdArray[$i]' /><br/> 
      </label>"; 
} 
+1

啊,當然。我愚蠢的是,我使用了相同的變量名作爲輸入字段。我怪我已經編程了14小時+);謝謝! – holyredbeard

+0

它有時會發生,是的:) – Havelock