下面是一個函數,它用數據庫中的現有用戶輸出表單,並帶有複選框和提交按鈕。用戶選擇要移除的一個或多個用戶並提交表單。我現在正在處理的是在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屬性?
因爲你改變$用戶變量在上面的for循環,追加更多的內容。 – MLeFevre
您是否嘗試刪除頂部的'echo $ users;'? –