roy - 18/06/2009 22:39 (laatste wijziging 18/06/2009 22:40)
PHP gevorderde
Beste,
Ik ben een dynamisch content management systeem aan het maken. Dynamische wil zeggen dat de hele opbouw van de invulformulieren uit een database wordt gehaald. Een invulformulier kan bestaan uit verschillende elementen: textfield, textarea, radio button, checkbox, etc.
Het is een ajax CMS, dus ik haal de waarde uit de velden met jQuery. Dat gaat allemaal goed, behalve bij de radiobuttons en selectboxen. Dat komt omdat er bij de geselecteerde waarde 'checked' in de code staat en het javascript haalt de waarde op waarbij checked staat.
Een voorbeeld:
Uit de database worden de gegevens gehaald om het invulformulier op te bouwen en de gegevens die bij een item, dat gewijzigd moet worden, horen. Hij bouwt de radiobutton en zet de waarde 'CHECKED' bij de waarde die bij het item hoort.
De waarde die bij het item hoort is dus 'true'.
Wanneer ik deze waarde wil wijzigen in 'false' dan klik je false aan, maar 'checked' blijft bij 'true' staan.
Met jQuery haal ik de waarde uit alle velden op. Dus ook de waarde die bij checked staat. (dit is de verkeerde waarde)
Hoe kan ik het zo maken dat als ik op een andere radiobutton klik bij de eerste radiobutton 'checked' wordt weggehaald en bij de tweede wordt neergezet. Het probleem is dat het meer dan twee radiobuttons kunnen zijn en meerdere groepen(sets).
Steek ze gewoon in een radio group? Daar kan je niet meer dan 1 checken. En laat vervolgens alle waarden updaten naar je database, zodanig dat die dat checked was en nu niet meer, dat die de waarde unchecked heeft.
bedankt voor je reacte, maar als het zo simpel was dan had ik het zelf ook voor elkaar gekregen.
Beide radiobuttons vormen al 1 groep. het probleem is dat bij het ophalen van de waarde (dmv jQuery) er gekeken wordt naar de controls waarbij 'checked' staat. in de html code blijft checked dus vast staan en verspringt niet mee als een andere radiobutton wordt geselecteerd. zie de beginpost.
Je zou op alle checkbox input's een onchange event kunnen zetten en in de callback de vakjes bij een bepaalde naam afgaan en kijken of ze aangevinkt zijn met this.checked. Als dat zo is kun je het attribuut weghalen.
Maar wat trouwens veel makkelijker werkt is: input[@type=radio]:checked toevoegen aan je find functie. Heb het net getest en werkt.
roy - 20/06/2009 13:25 (laatste wijziging 21/06/2009 20:49)