martinmeijer
Gebruiker
- Lid geworden
- 4 jul 2013
- Berichten
- 22
Beste,
Ik ben nu al een tijdje bezig met een probleem wat een beetje begint te frustreren, ik zal de case even uitleggen
Ik ben een backoffice aan het maken die ik compleet wil laten werken zonder paginaverversing, dit doe ik met javascript (jQuery)/ JSON en PHP/MySQL
Ik heb alles goed werkend, als ik in de lightbox van jQuery een menu item toevoeg, dan komt deze in de database te staan. In dezelfde lightbox heb ik een uitklap menu met de ingevoerde menu items, om er een sub menu item aan te kunnen koppelen. Nu wil ik natuurlijk dat deze <select> menu netjes wordt geupdate wordt na elke invoer.
Ik gebruik deze template http://themes.stammtec.de/?theme=mango. De pagina die ik gebruik is in het menu "Tables" en dan "Dynamic", ik gebruik de tweede tabel als je daar klikt op "+ New client" dan is dit de lightbox die ik gebruik, wellicht dat dit de html en de gebruikte javascript wat verduidelijkt.
Op zich doet hij het wel, alleen ook weer niet. Het gedrag wat hij vertoond is als volgt...
Als ik een eerste invoer doe bijv. "Test" dan staat deze in de database en toont hij deze waarde ook in een alert die de <select> menu moet herbouwen, echter zet hij deze er dan niet in...
Bij een tweede invoer (zonder de pagina te verversen) bijv. "Test 1", dan is het eigenlijk het zelfde verhaal als hiervoor, alleen dan bouwt hij de select menu wel op, deze wordt dan alleen uitgebreid met de eerste invoer "Test".
Dit gaat dus zo verder, zou ik een invoer maken "test 2" dan staan test en test 1 er wel weer in alleen test 2 weer niet, terwijl deze wel voorbij komt in mijn alertbox.
Nu snap ik best veel, alleen dit volg ik even niet meer, veel dingen heb ik al geprobeerd maar helaas zonder succes.
De code die ik gebruik is als volgt:
Graag hoor ik ideeen hoe ik dit anders zou kunnen doen. Ik denk dat het te maken heeft met de lightbox o.i.d.
Ik heb dit eerst in een kaal script opgebouwd zonder lightbox, waar alles perfect werkt.
Alvast reuze bedankt!
Groeten Martin Meijer
Ik ben nu al een tijdje bezig met een probleem wat een beetje begint te frustreren, ik zal de case even uitleggen
Ik ben een backoffice aan het maken die ik compleet wil laten werken zonder paginaverversing, dit doe ik met javascript (jQuery)/ JSON en PHP/MySQL
Ik heb alles goed werkend, als ik in de lightbox van jQuery een menu item toevoeg, dan komt deze in de database te staan. In dezelfde lightbox heb ik een uitklap menu met de ingevoerde menu items, om er een sub menu item aan te kunnen koppelen. Nu wil ik natuurlijk dat deze <select> menu netjes wordt geupdate wordt na elke invoer.
Ik gebruik deze template http://themes.stammtec.de/?theme=mango. De pagina die ik gebruik is in het menu "Tables" en dan "Dynamic", ik gebruik de tweede tabel als je daar klikt op "+ New client" dan is dit de lightbox die ik gebruik, wellicht dat dit de html en de gebruikte javascript wat verduidelijkt.
Op zich doet hij het wel, alleen ook weer niet. Het gedrag wat hij vertoond is als volgt...
Als ik een eerste invoer doe bijv. "Test" dan staat deze in de database en toont hij deze waarde ook in een alert die de <select> menu moet herbouwen, echter zet hij deze er dan niet in...
Bij een tweede invoer (zonder de pagina te verversen) bijv. "Test 1", dan is het eigenlijk het zelfde verhaal als hiervoor, alleen dan bouwt hij de select menu wel op, deze wordt dan alleen uitgebreid met de eerste invoer "Test".
Dit gaat dus zo verder, zou ik een invoer maken "test 2" dan staan test en test 1 er wel weer in alleen test 2 weer niet, terwijl deze wel voorbij komt in mijn alertbox.
Nu snap ik best veel, alleen dit volg ik even niet meer, veel dingen heb ik al geprobeerd maar helaas zonder succes.
De code die ik gebruik is als volgt:
HTML:
function rebuildSelectMenu()
{
var SITE_URL_ADMIN = "http://xxx.nl/admin/";
// URL naar het bestand met JSON
var JSONurl = SITE_URL_ADMIN+"/reloads/menuItems.php";
document.getElementById("sub_of").options.length = 0;
// Het ophalen van de JSON data
$.getJSON(JSONurl, {cache: false}, function(data){
// De JSON array omzetten naar een string
$.each(data, function(index,item)
{
// Alert met de ontvangen data van JSON
alert(item.name); // Laat ook de laatst ingevoerde item zien
// De <select> menu herbouwen met nieuwe data, alleen hier plaatst hij de laatste invoer niet in terwijl ik hem wel zie in de alert
$("#sub_of").append("<option value='"+item.idoff+"'>" + item.name + "</option>");
});
});
}
Graag hoor ik ideeen hoe ik dit anders zou kunnen doen. Ik denk dat het te maken heeft met de lightbox o.i.d.
Ik heb dit eerst in een kaal script opgebouwd zonder lightbox, waar alles perfect werkt.
Alvast reuze bedankt!
Groeten Martin Meijer
Laatst bewerkt: