Radio buttons
Die radio buttons worden gelijk met de unieke items uit een database gemaakt.
Nu wil ik, nadat de keuze die gemaakt is uit de radio buttons, die keuze via een geselecteerde radio button zichtbaar blijft.
Ik vond op het internet:
>form> <input type="radio" name="colors" id="red">Red<br></form>
<button onclick="check()">Check "Red"</button>
<script>
function check() {
document.getElementById("red").checked = true;
}
Ik dacht dat als ik nu "RED" vervang voor het ID van de opgevraagde data en elke button een id geef die gelijk is aan het id van die data, dan moet de radio button te selecteren zijn.
While($record= mysql_fetch_object($resultaat))
{
$soort_id=$record->soort_ID;
$soort=$record->soort;
?><script>
function check()
{
document.getElementById($soort_id).checked = true;
}
</script>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
echo "<Input type = 'Radio' Name ='soortkeuze' value= $soort_id id=$soort_id>$soort<br>";
if ($soort_id==$selected_radio){Check '$soort_id' ;}
}[/i]
Nu krijg ik [b]Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING [/b] in
[i]if ($soort_id==$selected_radio){Check '$soort_id' ;}[/i]
Ik heb [i]Check $soort_id [/i] eerst geprobeerd maar dat werkte allemaal niet.
Vervolgens heb ik bedacht dat $soort_id nu een dubbel functie krijgt en dit het probleem kon geven.
[i]$x=1;
While($record= mysql_fetch_object($resultaat))
{
$soort_id=$record->soort_ID;
$soort=$record->soort;
?>
echo "<Input type = 'Radio' Name ='soortkeuze' value= $soort_id id=$soort_id>$soort<br>";
if ($soort_id==$selected_radio){Check '$soort_id' ;}
}[/i]
Nu krijg ik [b]Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING [/b] in
[i]if ($soort_id==$selected_radio){Check '$soort_id' ;}[/i]
Ik heb [i]Check $soort_id [/i] eerst geprobeerd maar dat werkte allemaal niet.
Vervolgens heb ik bedacht dat $soort_id nu een dubbel functie krijgt en dit het probleem kon geven.
[i]$x=1;
While($record= mysql_fetch_object($resultaat))
{
$soort_id=$record->soort_ID;
$soort=$record->soort;
?>
function check()
{
document.getElementById($soort_id).checked = true;
}
</script>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
echo "<Input type = 'Radio' Name ='soortkeuze' value= $soort_id id=$x>$soort<br>";
if ($soort_id==$selected_radio){Check $id ;}
$x=$x++;
}[/i]
Nu heeft elke button de id van x. Maar ook dat gaat mis.
Ik ga dus ergens de mist in. Wie kan me helpen?
De radio functie button moet ge checked kunnen worden, die waarde moet dan weer veranderd kunnen worden door een andere button in te drukken. De database voorwerpen veranderd niet bij het kiezen alleen de lijst van voorwerpen die gekozen zijn.
[size=xsmall][i]Toevoeging op 26/04/2015 10:31:24:[/i][/size]
En koudweg had ik het geplaatst toen ik een z.g.n. brainwave kreeg:
$x=1;
While($record= mysql_fetch_object($resultaat))
{
$soort_id=$record->soort_ID;
$soort=$record->soort;
$keuze="";
if ($soort_id==$selected_radio){$keuze="CHECKED" ;}
echo "<Input type = 'Radio' Name ='soortkeuze' value= $soort_id id=$x $keuze>$soort<br>";
$x=$x++;
}
Niet zo lastig doen, gewoon het woord "CHECKED" op de juiste plaats er tussen zetten werkt.
Bedankt voor het lezen. Ik heb wat ik zocht. ;-)
echo "<Input type = 'Radio' Name ='soortkeuze' value= $soort_id id=$x>$soort<br>";
if ($soort_id==$selected_radio){Check $id ;}
$x=$x++;
}[/i]
Nu heeft elke button de id van x. Maar ook dat gaat mis.
Ik ga dus ergens de mist in. Wie kan me helpen?
De radio functie button moet ge checked kunnen worden, die waarde moet dan weer veranderd kunnen worden door een andere button in te drukken. De database voorwerpen veranderd niet bij het kiezen alleen de lijst van voorwerpen die gekozen zijn.
[size=xsmall][i]Toevoeging op 26/04/2015 10:31:24:[/i][/size]
En koudweg had ik het geplaatst toen ik een z.g.n. brainwave kreeg:
$x=1;
While($record= mysql_fetch_object($resultaat))
{
$soort_id=$record->soort_ID;
$soort=$record->soort;
$keuze="";
if ($soort_id==$selected_radio){$keuze="CHECKED" ;}
echo "<Input type = 'Radio' Name ='soortkeuze' value= $soort_id id=$x $keuze>$soort<br>";
$x=$x++;
}
Niet zo lastig doen, gewoon het woord "CHECKED" op de juiste plaats er tussen zetten werkt.
Bedankt voor het lezen. Ik heb wat ik zocht. ;-)
Je code is nogal een zooitje geworden, maar niet het ID van het input-veld moet gelijk zijn, maar de NAME.
Dat zooitje klopt. Ik moet eerlijk zijn dat ik door het experimenteren soms het bos niet meer zie en dat ik dan als het werkt, stukje bij beetje het onkruid weg haal.
Ook is het niet nodig om eindeloos lappen HTML te echo'en. Je kunt heel makkelijk "in" en "uit" PHP codeblokken springen.
Dus in plaats van dit:
Code (php)
1
2
3
2
3
<?php
echo "<Input type = 'Radio' Name ='soortkeuze' value= $soort_id id=$soort_id>$soort<br>";
?>
echo "<Input type = 'Radio' Name ='soortkeuze' value= $soort_id id=$soort_id>$soort<br>";
?>
zoiets:
Code (php)
Dit maakt meteen je code een stuk beter leesbaar.
Ook zou ik je aanraden je HTML eens door een validator te halen, of een plugin voor je browser te installeren die dit doet.
En tot slot: als je nieuwe code aan het schrijven bent zou je geen functies moeten gebruiken die starten met mysql_. Deze extensie is namelijk al ~10 jaar verouderd.
Mijn vraag ging over het 'aan' en 'uit' zetten van een radio button met PHP. Ik ontdekte dat simpelweg 'checked' in de radio zin al een check plaatste bij de radio button. Ik hoefde dus geen 'checked=true' of 'checked=false' te gebruiken. Ik heb heel veel oplossingen gevonden maar bij mij bleven de radiobuttons die ik plaatste of allemaal unchecked of allemaal checked. Door simpelweg het woord in de zin te plaatsen kan je dus de button checken.
Ik had me in de koffiehoek al eens voorgesteld, wellicht wordt mijn manier van werken dan duidelijk.
Gewijzigd op 29/04/2015 08:03:20 door E Ander
Gewoon van elke mysql_ functie een mysqli_ functie maken, via zoeken en vervangen.. werkt ook op Synology.