Ik ben verder gegaan met het maken van mijn ubb parser voor mijn nieuwe forum, dit gaat eigenlijk helemaal voorspoedig, maar omdat mij de code tags niet lukte heb ik die van internet gehaald en helemaal kunnen aanpassen op 1 ding na.
Ik wil namelijk boven iedere code een knopje select all zodat als je daarop drukt de gehele code word gelecteerd.
Nu ben ik ook een prutser in javascript en heb ik dat stukje code van internet gehaald, dit werkt ook.
Maar nu het probleem: die knop heeft een id nodig om de inhoud van een <div id="1"> te kunnen selecteren, als dit id overal gelijk is selecteerd hij altijd de eerste code, dit wil ik dus niet.
Mijn vraag: Hoe kan ik zorgen dat ik altijd overal een identiek id mee kan geven.
Wat dacht ik eerst: Ik laat het topic id vanuit de database meesturen, maar je kan meerde code velden in 1 bericht hebben dus dat gaat ook niet, want dan hebben die code velden dezelfde id.
maak een functie om <div id="?"> tags te genereren? zet dan een integer op 1 ($divs = 1) in het begin van je document, en elke keer je die methode aanroept, wordt $divs met 1 verhoogd?
Dat komt omdat elke keer als je deze functie aanroept hij $id weer reset naar 0 en dan 2x gaat otellen. Je moet of $id static maken of die moet je ergens anders gaan onthouden.
Volgens mij doelt Ultimatum op de variable scope...
Je verhoogt de variabele $id telkens met één in je functie, dus in de variable scope van je functie, niet in de globale variable scope... Daarvoor moet je eerst het keyword global voor gebruiken. Maar nog iets, waarom wil je speciaal een functie aanmaken voor een integer met één te verhogen?
Daar kan je evengoed de operator '++' voor gebruiken:
in OOP (Object Oriented Programming) betekent dit dat dit voor alle klassen geldt. in niet OOP context heeft dit geen betekenis, denk ik. Ik denk dat de poster in dat geval 'global' bedoelt?
Ik vermoed dat je niet OO werkt, dus zal ik even uitschrijven wat ik dacht te doen.
Ik weet wel niet exact meer hoe het met de scope zit in non-OO (ik werk enkel met OO PHP, Zend Framework), maar het zou kunnen dat je $divs global moet maken om dit te doen werken.
EDIT: waarom doe ik nog moeite als iemand me voor is?
EDIT2: nota op NTS64's reactie.
De global oplossing is niet echt elegant. Ik veronderstel dat je die grote functie aanroept vanuit een lus. Beter is dus om $id mee te geven als argument in je functie. eventueel kan je die op 1 defaulten ($id=1 als tweede argument voor je methode, zo wordt id optioneel en is deze standaard 1 als hij niet meegegeven wordt). Op die manier is het imho beter, en zit je niet in de knoop met de variable scope. (kijk eens aan, een rijmpje! En dat in de hersendodende examenperiode )
@NTS64, static niet niet de scope maar de variable word overal onthouden zonder steeds opnieuw declareerd te worden. Dus bijvoorbeeld, public static $id. Maar dit kan alleen met classes en dat gaat hier niet op dus bovenstaande oplossingen zijn beter.