Ben bezig met een soort webshop.
Heb een scriptje gemaakt om alle aanbiedingen weer te geven.
Onder elk item wil ik extra informatie laten zien na het klikken van de meer info button.
Als ik bij product 1 op meer info klik komt eronder meer info.
Als ik bij product 2 op meer info klik komt onder product 1 meer info over product 1.
Dit is uiteraard niet de bedoeling, ik denk dat de oplossing ligt in het product id die als hidden veld in het formulier zit.
Kan iemand mij op weg helpen? Hieronder een deel van het scriptje die alle informatie uit een mysql database haalt.
Bij voorbaat dank voor uw hulp.
@ozzie, uit zn verhaal begrijp ik dat ie meerdere '#productInfoPopup' heeft, dus is het niet slim om het als ID te gebruiken
overigens zie je dat ook aan de code ;)
Oplossen met een counter kan idd, als je liever wegloopt voor t probleem
Dus nou ga je oneindig aantal css objects aanmaken om ze standaard te verbergen?
persoonlijk vind ik de .closest() een betere oplossing
Hij zal trouwens ook de andere popups willen sluiten neem ik aan, los je die ook gelijk op voor hem? :)
ik ga hier nieteens op in.
Ik wil niemand aanvallen en bedoel het ook niet zo
ben alsnog van mening dat class makkelijker is en t gebruik van closest vanuit de button
om hoofdzakelijk 'initieel' de popups te verbergen en minder code te gebruiken
Thanks voor de antwoorden, geen ruzie maken heren,
alle mogelijkheden en opties zijn welkom zo kan ik zelf zien wat er mogelijk is en daarvan leren en toepassen wat het handigste voor mij is.
Dennis, je bedoelt dat ik voor elk resultaat van die query hetzelfde id gebruik omdat die loop voor elk product word herhaald, dus daarom moet ik een class gebruiken? Daar heb ik nog niet aan gedacht maar het klinkt logisch bedankt.
Ik ga me verdiepen in closest() en een class gebruiken en ik ga ook de code van ozzie eens proberen.
Om de div te kunnen tonen (per product) heb je een unieke identifier nodig. Voor ieder product een verschillende.
Stel we hebben 10 producten en ik wil dat product 5 openklapt, dan heb je dus een unieke identifier voor product 5 nodig. Dan moet je dus een id gebruiken. Een id moet altijd uniek zijn (logisch, want het is een identifier). Die teller die ik heb ingebouwd zorgt ervoor dat je dus unieke id's hebt. Je moet dan nog wel zorgen dat standaard die div's dicht staan. Daarvoor kun je bijvoorbeeld nog een class toevoegen.
Het is nog niet helemaal gelukt hij gaf hier en daar wat syntax foutjes aan en verdwaalde divs.
Echter bij 1 regel blijf ik steken als ik op de button klik doet hij niks en bij de ontwikkelaars console staat er:
SyntaxError: expected expression, got end of script
Daarnaast staat een link naar de regel met de fout die in het rood staat beschreven hier maak ik ook uit op dat jou code werkt:) Hierboven bij jou antwoord is dat regel 28.
<input type = "button" onclick = "document.getElementById("productInfoPopup1").style.display = "block" value = "Meer info"></button>
De fout die er bij hoort zegt geen spatie tussen attributen.
Dit zegt hij ook als ik er een spatie inzet zoals net.
Uiteraard laat ik het weten als het gelukt is en hou ik mijn topic in de gaten.