controle op radio

Status
Niet open voor verdere reacties.

arienlans

Gebruiker
Lid geworden
15 aug 2008
Berichten
172
Wie weet hoe je een controle uitvoerd of een van de twee rondjes zijn aan gevinkt

<input type="radio" name="geslacht" value="v" />Jongen / <input type="radio" name="geslacht" value="m" />Meisje
 
Na het verzenden van het formulier zit de waarde van "geslacht" in $_POST["geslacht"] (of $_GET["geslacht"] als je get gebruikt). Je kunt dus controleren of $_POST["geslacht"] de gewenste waarde bevat door een vergelijking uit te voeren, bijvoorbeeld:
PHP:
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
	if ($_POST["geslacht"] == "m") {
		echo "jongen";
	} elseif ($_POST["geslacht"] == "v") {
		echo "meisje";
	} else {
		die("fout"); //mooiere afhandeling bedenken
	}
}
?>
p.s. je hebt m en v bij de verkeerde geslachten staan in jouw codevoorbeeld ;)
 
Super het werkt dank je

na de foutmelding is de keuze weg hoe kan ik dat oplossen?
 
Ik laat php in het codevoorbeeld domweg stoppen. Om de code goed af te handelen zul je zelf iets moeten bedenken dat bij jouw script past.

Je kunt bijvoorbeeld de laatste else constructie eraf halen, maar dan kan een gebruiker doorgaan zonder geslacht op te geven. Je zou ook een foutmelding kunnen maken en de gebruiker alsnog vragen om het geslacht.
 
waarde terug laten komen op formulier

hier onder een stukje script over hoe ik na een foutmelding terug ga naar het invulformulier maar met de ingevulde waardes die ervoor ingevuld waren bij value zet die de waarde neer die ervoor ingetikt was en niet verzonden is

<label>achternaam</label>
<input name="achternaam" value="<?php echo $achternaam; ?>">

alleen ik krijg dat bij een radio niet voor elkaar

<input type="radio" name="geslacht" value="m;<?php echo $jongen; ?>" />Jongen / <input type="radio" name="geslacht" value="v;<?php echo $meisje; ?>" />Meisje
 
Een radio werkt met
HTML:
selected="selected"

Het zal dus zo moeten:
PHP:
$jongen = ($_POST['geslacht'] == 'm') ? 'selected="selected" ' : '';
$meisje = ($_POST['geslacht'] == 'v') ? 'selected="selected" ' : '';
<input type="radio" name="geslacht" value="m" <?php echo $jongen; ?>/>Jongen /
<input type="radio" name="geslacht" value="v" <?php echo $meisje; ?>/>Meisje
 
Laatst bewerkt:
ik krijg dit niet werkend!

kan je me verder mee helpen?

het maakt geen verschil met het oude
 
Tja ik werk zonder kennis van de volledige code. :rolleyes:

Ik ga er vanuit dat je het formulier naar dezelfde pagina POST en dat je dus de waardes met $_POST aan kan roepen.

Als je de volledige code kunt plaatsen kunnen we je gerichter helpen.
 
zo heb ik het nu staan!


<?php
session_start();

$jongen = ($_POST['geslacht'] == 'm') ? 'selected="selected" ' : '';
$meisje = ($_POST['geslacht'] == 'v') ? 'selected="selected" ' : '';

if($_SERVER['REQUEST_METHOD'] == 'POST') {
if ($_POST["geslacht"] == "m") {
echo "jongen";
} elseif ($_POST["geslacht"] == "v") {
echo "meisje";
} else {
die("fout"); //mooiere afhandeling bedenken
}
}
?>
<table
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post">
<tr><td><input type="radio" name="geslacht" value="m" <?php echo $jongen; ?>/>Jongen /
<input type="radio" name="geslacht" value="v" <?php echo $meisje; ?>/>Meisje<?php echo $fout['geslacht']; ?></td></tr>
<tr><td><input class="knop" name="submit" type="submit" value="Verzenden"> &nbsp;
<input class="knop" name="submit" type="submit" value="Wissen"></td></tr>
</table>
 
PHP:
<?php 
session_start();

$jongen = ($_POST['geslacht'] == 'm') ? 'checked="checked" ' : '';
$meisje = ($_POST['geslacht'] == 'v') ? 'checked="checked" ' : '';

if($_SERVER['REQUEST_METHOD'] == 'POST') {
  if ($_POST["geslacht"] == "m") {
    echo "jongen";
  } elseif ($_POST["geslacht"] == "v") {
    echo "meisje";
  } else {
    die("fout"); //mooiere afhandeling bedenken
  }
}
?>
<table>
<form action="" method="post">
<tr><td><input type="radio" name="geslacht" value="m" <?php echo $jongen; ?>/>Jongen /
<input type="radio" name="geslacht" value="v" <?php echo $meisje; ?>/>Meisje<?php echo $fout['geslacht']; ?></td></tr>
<tr><td><input class="knop" name="submit" type="submit" value="Verzenden"> &nbsp;
<input class="knop" name="submit" type="submit" value="Wissen"></td></tr>
</table>
Blijkt dat het geen "selected" maar "checked" moet zijn :rolleyes:

Als ik het zo bekijk moet dit werken.
 
geweldig het werkt

kan soms erg simpel zijn als je weet hoe het moet

Dank je
 
select dropdownmenu

nog een vraag je als ik het zelfde wil bij een dropdownmenu

waar plaats ik in dit script <?php echo $jongen; ?>
PHP:
function dropdownbox_Datum()
{
  global $maanden;
  $dag=(isset($_POST['dag']))?$_POST['dag']:date('dag');
  $maand=(isset($_POST['maand']))?$_POST['maand']:date('maand');
  $jaar=(isset($_POST['jaar']))?$_POST['jaar']:date('jaar');
  echo '<select name="dag">';
  	echo '<option value="">dag</option>'; 
	for($i_d=1;$i_d <= 31;$i_d++)
    { 
    echo '<option value="'.$i_d.'">'.$i_d.'</option>';
    } 
	echo '</select>'; 
  echo '<select name="maand">';
  echo '<option value="">maand</option>'; 
	for($i_m=0;$i_m < 12;$i_m++) 
    { 
    $maanden = array('Januari','Februari','Maart','April','Mei','Juni','Juli','Augustus','September','Oktober','November','December'); 
    echo '<option value="'.($i_m+1).'">'.$maanden[$i_m].'</option>'; 
    } 
	echo '</select>'; 
  echo '<select name="jaar">';
  echo '<option value="">jaar</option>'; 
	for($i_j=date('Y')-12;$i_j >=date ('Y')-22;$i_j--) 
    { 
    echo '<option value="'.$i_j.'">'.$i_j.'</option>'; 
    } 
	echo '</select>'; 
	}
 
Laatst bewerkt door een moderator:
Waarom zou je die in deze functie willen hebben :(
 
Ik wil dat men er een geboorte datum ingevoerd word en gecontroleerd word wat ik nu ingebouwd heb in mijn script.

Nu wil ik dat als bv het adres verkeerd ingevoerd word dat na de foutmelding het geboorte datum blijft staan op wat was ingevoerd
 
Dan heeft $jongen daar niets mee te maken ;)

Ik kan het je wel meteen geven maar wat schiet jij er dan mee op?
Je hebt code die werkt maar wat heb je er van geleerd :confused:

Volgens mij is alle code die je nu hebt gemaakt door Helpmij-leden.

Hier heb je een tip om het te realiseren:

Je moet binnen elke FOR-lus controleren of de gegeven waarde gelijk is aan de huidige FOR-waarde.
Wanneer dat zo is zul je aan het <option> gedeelte selected="selected" toevoegen.

Het principe is nagenoeg identiek als mijn code bij de radio-button
 
ok dus ik heb het volgende gedaan:

$dag= ($_POST['dag']== 'dag') ? 'select="select" ' : '';

en

function dropdownbox_Datum()
{
global $maanden;
$dag=(isset($_POST['dag']))?$_POST['dag']:date('dag');
echo '<select name="dag">';
echo '<option value="">'echo $dag'</option>';
for($i_d=1;$i_d <= 31;$i_d++)
{
echo '<option value="'.$i_d.'">'.$i_d.'</option>'; $dag;
}
echo '</select>';

helaas heb ik teweinig kaas gegeten om dit voor elkaar te krijgen
 
Ik doe er een voor, de rest moet je zelf maar regelen
PHP:
function dropdownbox_Datum()
{
  global $maanden;
  $dag=(isset($_POST['dag']))?$_POST['dag']:date('dag');
  $maand=(isset($_POST['maand']))?$_POST['maand']:date('maand');
  $jaar=(isset($_POST['jaar']))?$_POST['jaar']:date('jaar');
  echo '<select name="dag">';
  echo '<option value="">dag</option>'; 
  for($i_d=1;$i_d <= 31;$i_d++)
  {
    $selected = ($dag == $i_d) ? ' selected="selected" ' : '';
    echo '<option value="'.$i_d.'"'. $selected .'>'.$i_d.'</option>';
  } 
  echo '</select>'; 
  echo '<select name="maand">';
  echo '<option value="">maand</option>'; 
  for($i_m=1;$i_m <= 12;$i_m++) 
  { 
    $maanden = array('Januari','Februari','Maart','April','Mei','Juni','Juli','Augustus','September','Oktober','November','December'); 
    echo '<option value="'. $i_m.'">'.$maanden[($i_m-1)].'</option>'; 
  } 
  echo '</select>'; 
  echo '<select name="jaar">';
  echo '<option value="">jaar</option>'; 
  for($i_j=date('Y')-12;$i_j >=date ('Y')-22;$i_j--) 
  { 
    echo '<option value="'.$i_j.'">'.$i_j.'</option>'; 
  } 
  echo '</select>'; 
}
Ook het verzoek je code even tussen
PHP:
te plaatsen :)
Dat maakt het een stuk leesbaarder zoals je ziet ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan