Hallo,
Ik zit met een probleem. Ik moet een aantal menu-items uitlezen vanuit XML. Daar zijn geen problemen, maar alle items moeten in een tabel weergegeven worden. Elke item heeft daarbij een aantal functies, zoals het bewerken van de pagina die achter het menu-item zit. Ik wil met een onclick functie (item.onclick = function() {.....}) een nieuwe XMLHTTP request opzetten. Het probleem is, dat hij niet het unieke ID van dat menu-item pakt, maar altijd dat van de laatste. Check mijn code, zien jullie wat ik fout doe?
Ik zit met een probleem. Ik moet een aantal menu-items uitlezen vanuit XML. Daar zijn geen problemen, maar alle items moeten in een tabel weergegeven worden. Elke item heeft daarbij een aantal functies, zoals het bewerken van de pagina die achter het menu-item zit. Ik wil met een onclick functie (item.onclick = function() {.....}) een nieuwe XMLHTTP request opzetten. Het probleem is, dat hij niet het unieke ID van dat menu-item pakt, maar altijd dat van de laatste. Check mijn code, zien jullie wat ik fout doe?
Code:
function handleFillBoxes() {
if(xmlHttp.readyState == 4) {
if(xmlHttp.status == 200) {
changeStatus(xmlHttp.responseText);
//First we empty both boxes.
var oPublishedBox = document.getElementById("published");
for (var i=0; i<oPublishedBox.getElementsByTagName("tbody")[0].childNodes; i++) {
oPublishedBox.getElementsByTagName("tbody")[0].removeChild(oPublishedBox.getElementsByTagName("tbody")[0].childNodes[i]);
}
var oUnPublishedBox = document.getElementById("unpublished");
//Then we add the new data!
var aTopItems = xmlHttp.responseXML.getElementsByTagName("menuItem");
var pnummer=0;
var unummer=0;
var firstrun = true;
for (var i=0; i<aTopItems.length; i++) {
var oItem = aTopItems[i];
var iMenuId = getNodeValue(aTopItems[i],"menuId");
var iPagina = getNodeValue(aTopItems[i],"pagina");
var sLabel = getNodeValue(aTopItems[i],"label");
var iVolgnummer = getNodeValue(aTopItems[i],"volgnummer");
var iSubVan = getNodeValue(aTopItems[i],"subVan");
var sTitle = getNodeValue(aTopItems[i],"titel");
var oTr = document.createElement("tr");
oTr.id = "item"+iMenuId;
//The column containing the menu label
var oTd1 = document.createElement("td");
//The column containing the page title
var oTd2 = document.createElement("td");
oTd2.appendChild(document.createTextNode(sTitle+"("+iMenuId+")"));
//The column containing the status, always a green flag.
var oTd3 = document.createElement("td");
oTd3.className = "status";
oTd3.align = "center";
//The column containing the actions
var oTd4 = document.createElement("td");
oTd4.className = "acties";
//Add the edit and remove page buttons
if (iPagina != "") {
var oAEditPage = document.createElement("a");
oAEditPage.href = "index.php?pagina=pagina&taak=bewerken&contentId="+iMenuId;
var oImgEditPage = document.createElement("img");
oImgEditPage.src = "icons/page_edit.png";
oAEditPage.appendChild(oImgEditPage);
oAEditPage.title = "Bewerk pagina";
oTd4.appendChild(oAEditPage);
}
if (getNodeValue(oItem,"volgnummer") != 0) {
pnummer ++;
(1&pnummer) ? klasse = "oneven" : klasse = "even";
oTr.className = klasse;
oTd1.appendChild(document.createTextNode(sLabel));
var oImg = document.createElement("img");
oImg.alt = "On-publiceer menu-item";
if (firstrun) {
oImg.src = "icons/flag_green_trans.png";
firstrun = false;
} else {
oImg.src = "icons/flag_green.png";
oImg.style.cursor = "pointer";
oImg.onclick = function() {
createXMLHttpRequest();
xmlHttp.onreadystatechange = handleUnPublish;
xmlHttp.open("GET", "includes/ajaxHandlers.php?function=unPublish&id="+iMenuId+"&version=" + version, true);
xmlHttp.send(null);
}
}
oTd3.appendChild(oImg);
oImgEditMenu = document.createElement("img");
oImgEditMenu.style.cursor = "pointer";
oImgEditMenu.src="icons/table_edit.png"
//oImgEditMenu.onclick = showPublishProperties(oItem);
oTd4.appendChild(oImgEditMenu);
oTr.appendChild(oTd1);
oTr.appendChild(oTd2);
oTr.appendChild(oTd3);
oTr.appendChild(oTd4);
oPublishedBox.getElementsByTagName("TBODY")[0].appendChild(oTr);
} else {
unummer ++;
(1&unummer) ? klasse = "oneven" : klasse = "even";
oTr.className = klasse;
oTd1.appendChild(document.createTextNode(sTitle));
oImg = document.createElement("img");
oImg.alt = "Publiceer menu-item";
oImg.src = "icons/flag_red.png";
oImg.style.cursor = "pointer";
oImg.onclick = function() {
createXMLHttpRequest();
xmlHttp.onreadystatechange = handlePublish;
xmlHttp.open("GET", "includes/ajaxHandlers.php?function=publish&id="+iMenuId+"&version=" + version, true);
xmlHttp.send(null);
}
oTd3.appendChild(oImg);
oTr.appendChild(oTd2);
oTr.appendChild(oTd3);
oTr.appendChild(oTd4);
oUnPublishedBox.getElementsByTagName("TBODY")[0].appendChild(oTr);
}
}
} else {
alert("Er is een fout opgetreden. Foutcode: "+xmlHttp.status);
}