Controleren of checkbox is aangevinkt?

Status
Niet open voor verdere reacties.

turbojohn

Gebruiker
Lid geworden
26 jun 2007
Berichten
262
Hallo,

Ik ben bezig een site te maken in php.
Er zijn bepaalde opties (zoals bij het aanmelden akkoord gaan met de algemene voorwaarden) die gecontroleerd moeten worden.
Nu heb ik me al suf gezocht op het internet, maar er is geen script die realtime kijkt of checkboxen zijn aangevinkt.
Ik had op een gegeven moment dit:
PHP:
if($_POST['naamvandecheckbox'])
{
<input type="submit" etc...>
}

Maar dat werkt dus maar eenmalig.
Weet iemand hoe ik dit op kan lossen?

Alvast bedankt!
:thumb:
 
Je wilt dat meteen als iemand de checkbox aangeklikt wordt iets verschijnt / verdwijnt ?

Dan kom je bij JavaScript uit.

HTML:
<input type="checkbox" name="whatever" onclick="showHide('hidden', this)" />
<div id="hidden" style="display: none">
  Dit is normaal verborgen.
</div>

[JS]
function showHide(target, el){
if(el.checked){
document.getElementById(target).style.display == 'block';
} else {
document.getElementById(target).style.display == 'none';
}
}
[/JS]
 
Hoi,

Ik heb het geprobeerd, maar het werkt niet.
In ieder geval niet in mijn php-code. Dan komt er als error '<' ... blabla in mijn browser.
(Of heb ik je script iets te letterlijk opgevat? Ik ben geen javascriptschrijver, dus heb daar de balle verstand niet van:P)
Dit is wat ik nu heb, (na veel proberen:P)

PHP:
<script type="javascript">
function showHide(target, el){
  if(el.checked){
    document.getElementById(target).style.display == 'block';
  } else {
    document.getElementById(target).style.display == 'none';
  }
}
</script>
<?php
 echo "<tr><td>&nbsp;</td></tr>";  
    echo "<td width=\"24%\" valign=\"top\" height=\"19\" style=\"border-style: none; border-width: medium\">Ik ga akkoord met de <a href=\"algemene_voorwaarden.htm\" target=\"_new\">Algemene Voorwaarden</a></td>"; 
    echo "<td width=\"76%\" valign=\"top\" height=\"19\" style=\"border-style: none; border-width: medium\">
    <input type=\"checkbox\" name=\"akkoord\" value=\"ok\"></td></tr>";
    echo "<td width=\"24%\" valign=\"top\" height=\"19\" style=\"border-style: none; border-width: medium\">Ik zou graag de nieuwsbrief ontvangen</a></td>"; 
    echo "<td width=\"76%\" valign=\"top\" height=\"19\" style=\"border-style: none; border-width: medium\">
    
       
<input type=\"checkbox\" name=\"whatever\" OnClick=\"showHide('hidden', this)\" /></td></tr>";
    echo "<tr><td><div id=\"hidden\" style=\"display: none\"><input type=\"submit\" name=\"submit\" value=\"Versturen\"></div></td></tr>"; 
?>
Overigens zit er bij de php-codes nog een heel systeem, maar dat heb ik voor het overzicht maar even achterwege gelaten.
 
Laatst bewerkt:
Verander
[js]document.getElementById(target).style.display == 'block';[/js] en [js]document.getElementById(target).style.display == 'none';[/js] in [js]document.getElementById(target).style.display = 'block';[/js] en [js]document.getElementById(target).style.display = 'none';[/js]

Dan kan je het beste het script gedeelte
[js]<script type="text/javascript">
function showHide(target, el){
if(el.checked){
document.getElementById(target).style.display == 'block';
} else {
document.getElementById(target).style.display == 'none';
}
}
</script>[/js] in de head zetten. Het andere deel (het php gedeelte) in de body.
 
Hoi, Thnx supersnail!
Het is nu gelukt. Ik had dat met == al gezien (schrijf zelf php/ programeert c++) dus ik dacht al dat daar iets fout moest zitten.
Overigens lag dáár alleen de fout niet. Ik had het javascript weggezet met
HTML:
<script type="javascipt">
Zo werkt dat dus niet:p

Maar het werkt nu. Hartelijk bedankt allemaal!

Daaropaansluitend heb ik nog een vraagje over javascript.
Als ik nu 2 checkboxen tegelijk wil controleren (algemene voorwaarden en nieuwsbrief), moet ik dan het scriptje kopieëren, of extra variabelen in de functie showHide() gebruiken?

Groetjes, TurboJohny
 
Laatst bewerkt:
Visual basic

Ik kan het wel maken in visual basic
Is de code dan hetzelfde als in php?
 
@jurriensz, nee, dat is niet hetzelfde.

@turbojohn,

Dan zet je er gewoon een blokje bij:

HTML:
<input type="checkbox" name="whatever" onclick="showHide('hidden', this)" />
<div id="hidden" style="display: none">
  Dit is normaal verborgen.
</div>

<input type="checkbox" name="whatever2" onclick="showHide('hidden2', this)" />
<div id="hidden2" style="display: none">
  Dit is normaal verborgen.
</div>
 
Owja, tuurlijk, stom van me dat ik daar niet aan gedacht heb.
Heel veel dank ErikBooy007! Ga het gelijk even proberen.:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan