Just nu i M3-nätverket
Gå till innehåll

Spara "checked" radioknapp


Jessma

Rekommendera Poster

Sitter och gör ett stort formulär (så fler frågor från mig kan dyka upp), och har lite problem med radioknapparna.

 

När formuläret skickas kontrolleras att alla värden är ifyllda korrekt, detta funkar finfint. Om det är nåt fel ska formuläret visas om, med de ifyllda värdena och ett felmeddelande på de fält som är fel eller fattas. Detta funkar finfint för textfält, men ej radioknappar. Försökte använda delar av ett script från boken PHP-Cookbook, men den förklarade eg bara checkboxes.

 

Nedklippt script ser ut så här:

 

// Kollar fel

function check_form(){

$errors = array(); // alla felmeddelanden sparas här

if (!isset($_POST['sex'])){

$errors['sex'] = 'Du måste fylla i vilket kön du har';

}

return $errors;

}

 

// Skriver ut formuläret (det är väl här felet ligger...)

function show_form($errors = ''){

$defaults['sex'] = isset($_POST['sex']) ? "checked='checked'" : ''; // Om inget värde har skickats så ska ingen av radioknapparna vara markerade

echo ("<div>Kön: <input type="radio" name="sex" value="kvinna"' . $defaults['sex'] . '> Kvinna <input type="radio" name="sex" value="man"' . $defaults['sex'] . '> Man ' . print_error('sex', $errors) . '</div>") // Det blir på följande sätt: Om kvinna är markerad, blir man markerad andra ggn formuläret visas. Om ingen är markerad så visas trots det inte något felmeddelande. Lite knas alltså...

}

 

// Hjälpfunktion för att skriva ut fel

function print_error($key, $errors) {

if (isset($errors[$key])) {

return $errors[$key];

}

}

 

// Om formuläret har skickats kollas det, och visas ev om med fel, annars visas ett helt tomt formulär

if (array_key_exists('submit_check', $_POST)){

if ($errors = check_form()){

show_form($errors);

echo 'ja';

}

else{

echo 'nej';

}

}

else{

show_form();

}

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...