我的數據庫中有三張表:Person (id, name, last_name), System (id, name), PersonInSystem(id, person_id, system_id)
。最後一個用於鏈接一個人與一個系統。Ajax將javascript變量傳遞給javascript函數作爲參數
我用<select>
從我的數據庫顯示每個人都喜歡這個
echo '<option value="'.$queryResult["id"].'">'.$queryResult["name"].' '.$queryResult["last_name].'</option>';
我使用Ajax來獲取ID和發送查詢SELECT * FROM Person WHERE id = ID_FROM_SELECT
。然後,我顯示這樣的數據(我不能複製代碼,所以我必須從頭開始重寫,我將使用僞PHP + HTML),其主要目的是編輯所選人員:
<form>
Name: <input type="text" value="'.$nameFromDB.'" name="name">
Last name: <input type="text" value="'.$lastNameFromDB.'" name="lastname">
System: while() { // if one person is assigned to many systems, I will display them all in separate selects
<select><option value="'.$systemAssignedToPerson.'">'.$systemAssignedToPerson.'</option>
while() {
// display every system except for the one listed above
}
</select><img src="drop.gif" onclick="deleteSystem(document.getElementById(\"system\").value)"><input type="hidden" id="system" value="'.$systemAssignedToPerson.'">
}
<input type-"submit" value="Edit" name="editPerson">
</form>
現在,如果我想取消分配給系統的人,我想點擊drop.gif圖像,並觸發deleteSystem(value)
功能,這將發送查詢DELETE FROM PersonInSystem WHERE system_id = SYSTEM_ID_SENT and person_id = PERSON_ID_SENT
,但我不能傳遞的價值和我不不知道該怎麼做(我是Ajax新手)。
我可以將人員的ID存儲在會話變量中,但我不知道如何發送系統ID,也不想將數據發送到其他頁面。
另外我想更新系統分配的頁面(應該顯示同一個人)。
我想給你一個答案,但我已經找到代碼中的一些基本問題。你在你的'PHP' while循環中輸出一個靜態'id':''。所以你的html將是無效的(每個id只能出現一次),你的javascript無法區分你隱藏字段的不同值(因爲它們都有相同的「id」)。 – 2014-09-03 18:17:02