Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Eingabeüberprüfung von Radiobuttons, Checkboxen, Auswahllisten

Hallo Leute :-)

Sitzen gerade an unserer Hausarbeit und wissen nicht mehr weiter *schnief*:
Haben ein Formular mit Eingabefeldern, Auswahllisten, Radiobuttons und Checkboxen erstellt.
Beim Absenden soll überprüft werden, ob alles eingegeben wurde, wenn nicht, soll das Formular wieder aufgerufen werden. Dabei sollen die schon eingegebenen Daten drin stehen bleiben und die Felder, die noch fehlen, markiert werden.

Mit den Eingabefeldern klappt`s:

function zeigFormular() {
global $PHP_SELF;
# global $Vorname, $Nachname, $Ort;
echo '<pre><form action="' . $PHP_SELF .'" method="GET">';
if(!$_GET[Vorname])
echo '<b>Vorname:</b> <input type="Text" name="Vorname"><br>';
else
echo 'Vorname: <input type="Text" name="Vorname" value="' . $_GET[Vorname] . '"><br>';

Wie macht man das mit den anderen Feldern?
Vielen Dank schon im Voraus ;-)
Katherina und Silke-Maria

Hier gehts zum Orginal Eintrag "Eingabeüberprüfung von Radiobuttons, Checkboxen, Auswahllisten" im Forum

Antworten

hi also erstmal kannst du dir eigentlich die Abfrage

if(!$_GET[Vorname])

sparen und einfach schreiben:

echo 'Vorname: <input type="Text" name="Vorname" value="' . $_GET[Vorname] . '"><br>';

Denn wenn $_GET[Vorname] leer ist wird sowieso nix in das Input feld geschrieben!


Was noch zu sagen wäre das GET die variablen ja über die URL überträgt und du besser $_POST verwenden solltest! So können die Benutzer nix an der URL rumbasteln! Zumindest nicht so einfach!

Wenn du POST anstatt GET verwendest musst du aber den Formtag abändern auf <form action="deineurl" method="post">

Bei Checkboxen und Radioboxen bekommst du immer die Variable als TRUE zurück die ausgewählt wurde z.b. wenn du zwei Checkboxen hast wie folgt:
<input type="checkbox" name="ja">
<input type="checkbox" name="nein">

Und der User klickt nein an so ist $_POST[nein] gleich TRUE bzw. halt "1"! Das kannst du dann über ein If abfragen und später über das selected attribut wieder vorselektieren! Genauso ähnlich ist das auch mit Radio's!

Bei SELECT's wird ebenfalls immer die Selectierte Option, deren Value genauer gesagt, zurückgegeben!

Hoffe ich habs einigermaßen gut erklären können!

Gruß
Sascha


2.

11. Variablen und Formulare
http://www.dclp-faq.de/ch/ch-webvariablen.html

*** Nobody ***


3.

Danke schön :-))
Wir werden versuchen die Tipps umzusetzen!

Viele Grüße!


4.

Zitat:
brainwave postete
hi also erstmal kannst du dir eigentlich die Abfrage

if(!$_GET[Vorname])

sparen und einfach schreiben:

echo 'Vorname: <input type="Text" name="Vorname" value="' . $_GET[Vorname] . '"><br>';

Denn wenn $_GET[Vorname] leer ist wird sowieso nix in das Input feld geschrieben!


Was noch zu sagen wäre das GET die variablen ja über die URL überträgt und du besser $_POST verwenden solltest! So können die Benutzer nix an der URL rumbasteln! Zumindest nicht so einfach!

Wenn du POST anstatt GET verwendest musst du aber den Formtag abändern auf <form action="deineurl" method="post">

Bei Checkboxen und Radioboxen bekommst du immer die Variable als TRUE zurück die ausgewählt wurde z.b. wenn du zwei Checkboxen hast wie folgt:
<input type="checkbox" name="ja">
<input type="checkbox" name="nein">

Und der User klickt nein an so ist $_POST[nein] gleich TRUE bzw. halt "1"! Das kannst du dann über ein If abfragen und später über das selected attribut wieder vorselektieren! Genauso ähnlich ist das auch mit Radio's!

Bei SELECT's wird ebenfalls immer die Selectierte Option, deren Value genauer gesagt, zurückgegeben!

Hoffe ich habs einigermaßen gut erklären können!

Gruß
Sascha



5.

Hallo Sascha!

Ich habe das erst Mal mit den Radiobuttons ausprobiert,
in HTML:
Wie oft haben Sie die Lehrveranstaltung besucht?<br>
<input type="Radio"
name="Anwesenheit" value="immer">immer<br>
<input type="Radio" name="Anwesenheit" value="oft">oft<br>
<input type="Radio" name="Anwesenheit" value="selten">selten<br>

und im PHP-Skript:
<input type="radio" name="Anwesenheit" value="immer"
<?php if ("immer" == $_POST['Anwesenheit']) echo " immer"; ?>>
<input type="radio" name="Anwesenheit" value="oft"
<?php if ("oft" == $_POST['Anwesenheit']) echo " oft"; ?>>
<input type="radio" name="Anwesenheit" value="selten"
<?php if ("selten" == $_POST['Anwesenheit']) echo " selten"; ?>>

Beim PHP-Skript wird mir an der Stelle ein parse-error gemeldet.
Genauso wie bei den Auswahllisten:
in HTML:
<select name="Lehrveranstaltung" size="3">
<option>Angewandte Informatik</option>
<option>Kommunikation</option>
<option>Retrieval</option>
</select>

im PHP-Skript:
<select name="Lehrveranstaltung" option="Angewandte Informatik"
<?php if ("Angewandte Informatik" == $_POST['Lehrveranstaltung']) echo " Angewandte Informatik"; ?>>
<select name="Lehrveranstaltung" option="Kommunikation"
<?php if ("Kommunikation" == $_POST['Lehrveranstaltung']) echo " Kommunikation"; ?>>
<select name="Lehrveranstaltung" option="Retrieval"
<?php if ("Retrieval" == $_POST['Lehrveranstaltung']) echo " Retrieval"; ?>>


Weißt du, was daran falsch ist?
Viele Grüße,
Katherina


6.

Ähm...

Weil das ziemlich viel «if»'s sind, würd' ich folgendes empfehlen:

Code:                   In Zwischenablage kopieren (nur IE)
1">

Ich hab' eigentlich erst jetzt gemerkt, was an Eurem Script eigentlich falsch ist, aber
was soll's, die Funktion könnt' Ihr eh gebrauchen... :)

Also:

Code:                   In Zwischenablage kopieren (nur IE)
2">



Das geht so natürlich nicht - aber wenn Ihr Euch die HTML-Version genauer anschaut, solltet
Ihr eigentlich selbst merken, was da nicht stimmt...

Code:                   In Zwischenablage kopieren (nur IE)
3">

Wenn Ihr Euch den HTML-Code eines Formulars anschaut, dann müsst Ihr den in PHP genauso übernehmen

Code:                   In Zwischenablage kopieren (nur IE)
4">



Den Optionen einer Auswahlliste müsst Ihr die Values angeben, sonst weiss das Script nicht, welcher Wert überhaupt übergeben wird.
(könnte sein, dass dann die Nummer der Auswahlliste ausgegeben wird... weiss ich nicht... anyway...)

Code:                   In Zwischenablage kopieren (nur IE)
5">



Viel Spass noch bei den Hausaufgaben...

Urs


7.

Hallo Urs,

vielen Dank für deine Hilfe! Allerdings scheint noch ein Fehler da zu sein, bei der Wertzuweisung der Variable $key. Vielleicht magst du noch Mal einen Blick darauf werfen ;-)
Vielen Dank schon im Voraus,
Grüße, Katherina



//Zeigt Formular an
function zeigFormular() {
$_SERVER['PHP_SELF'];
# global $Semester;

echo '<pre><form action="' . $PHP_SELF .'" method="POST">';


echo 'Semester: <input type="Text" name="Semester" value="' . $_POST[Semester] . '"><br>';




function check_selected($key,$value, $type)
{
//HTML-Name des/r Radio-Buttons/Checkbox/Pulldown-Menu

AB HIER PARS-ERROR

$key = Lehrveranstaltung,Anwesenheit,Bewertung,Eigenschaften;

//Wert der Option/des Radio-Buttons
$value = Angewandte Informatik,Kommunikation,Retrieval,immer,oft,selten,sehr gut,gut,
mittelmäßig,weniger gut,überhaupt nicht,Freundlichkeit,Fragen,fachliche Kompetenz,
didaktische Kompetenz,Frisur,Kleidungsauswahl,Witze,Lächeln,Pausen,nichts;



//Typ des Eingabefeldes: Radio/Checkbox || Pulldown/Auswahlliste
$type = radio,select;

// Der Wert der vom Benutzer ausgewählten Variablen steht im $_POST-Array

global $_POST[Lehrveranstaltung], $_POST[Anwesenheit], $_POST[Bewertung], $_POST[Eigenschaften]; // als global erklären, damit wir die gewünschte Variable auslesen können

// Typ des Feldes herausfinden (Radio/Checkbox || Auswahlliste/Pulldown

switch ($type)
{
case 1: // Radio-Buttons und Checkboxes
$sel = " checked";
break;
case 2: // Pulldown-Menus
$sel = " selected";
break;
}

// Wertevergleich

if($_POST[$key] == $value)
{
echo $sel;
}

}



<select name="Lehrveranstaltung" size="3">
<option value="Angewandte Informatik"
<?php check_selected("Lehrveranstaltung", "Angewandte Informatik", 2); ?>>Angewandte Informatik</option>
<option value="Kommunikation"
<?php check_selected("Lehrveranstaltung", "Kommunikation", 2); ?>>Kommunikation</option>
<option value="Retrieval"
<?php check_selected("Lehrveranstaltung", "Retrieval", 2); ?>> Retrieval </option>
</select>




<input type="radio" name="Anwesenheit" value="immer"
<?php check_selected("Anwesenheit", "immer", 1); ?>> immer</br>
<input type="radio" name="Anwesenheit" value="oft"
<?php check_selected("Anwesenheit", "oft", 1); ?>> oft </br>
<input type="radio" name="Anwesenheit" value="selten"
<?php check_selected("Anwesenheit", "selten", 1); ?>> selten </br>


(Im HTML-Formular sehen jetzt die Auswahlliste+Radiobuttons so aus:

<select name="Lehrveranstaltung" size="3">
<option selected>Angewandte Informatik</option>
<option selected>Kommunikation</option>
<option selected>Retrieval</option>
</select>

<input type="Radio" name="Anwesenheit" value="immer"checked>immer<br>
<input type="Radio" name="Anwesenheit" value="oft"checked>oft<br>
<input type="Radio" name="Anwesenheit" value="selten"checked>selten<br>
)


8.

Oder hat sonst jemand eine Ahnung, was hieran falsch sein könnte?
Vielen Dank schon im Voraus fürs Angucken ;-)

Grüße, Katherina


Code:                   In Zwischenablage kopieren (nur IE)
6">




9.

Hmm, es geht also um Hausaufgaben! Kann es sein, daß Du im Unterricht nicht besonders aufgepasst hast? Was um alles in der Welt soll denn das:

$key = Lehrveranstaltung,Anwesenheit,Bewertung,Eigenschaften;

Den gleiche Käse hast Du auch bei $value und $type, da fehlt es aber ganz gewaltig an Grundlagen! Wenn die Wertzuweisung bei einer Variablen schon nicht klappt, dann würde ich doch mal empfehlen, diese Lektüre zu studieren:

http://www.selfphp.com
http://www.galileocomputing.de/openbook/php4
http://www.dclp-faq.de
http://www.php.net
http://www.php.net/manual/de
http://ffm.junetz.de/members/reeg/DSP/
http://www.phptutorials.de
http://www.dynamic-webpages.de/05.tutorials.php


*** Nobody ***


10.

Okay, habe die Lösung gefunden, jetzt klappt's! :-)
Ciao, Katherina

Code:                   In Zwischenablage kopieren (nur IE)
7">




Hier gehts zum Orginal Eintrag "Eingabeüberprüfung von Radiobuttons, Checkboxen, Auswahllisten" im Forum
 
phpforum.de | Impressum