Formularausweitung

Habe ein kleines Forumlar geschrieben, eigentlich sollte es in der selben Seite ausgewertet werden,
aber geht nicht ganz, so habe das Formular:

[PHP]



















































three weeks
3 o´clock
two years
yesterday afternoon
1967
several minutes
they married
days
last year
half an hour
a quarter past seven
midnight



[/PHP]

So dann habe ich die Auswertung geschrieben nur für das erste Kästchen!

[PHP]<?php
$three_weeks=„for“;

if($three_weeks==„for“)
{
echo „richtig“;
}
else
{
echo „falsch“;
}

?>[/PHP]

Wo ist der Fehler?
Oder kann mir jemand sagen wie es geht, das ich alles auf einer Seite machen kann, das sozusagen
die Auswetung in einer Weiteren spalte geschieht?

MfG Marcel

[PHP] <?php
$three_weeks=$_POST[„three_weeks“];

if($three_weeks==„for“)
{
echo „richtig“;
}
else
{
echo „falsch“;
}

?> [/PHP]

Ist es denn möglich, das ich sage, ich gebe alle Lösungen in die Tabelle ein, drücke dann auf Überprüfen und die Auswertung erfolgt in einer weiteren Spalte auf der selben Seite, was muss ich da ändern?

das kannst du mit JavaScript realisieren, oder halt mit Ajax wenn du das prüfen weiterhin per PHP machen möchtest

Kannst du mir da einen kleinen Tipp geben, wonach ich mich informieren müsste, damit das geht?

Thx Marcel

Naja kommt darauf an mit welcher Methode du es machen möchtest.
Da du dich anscheinend nicht damit auskennst, würde ich dir raten JavaScript zu nutzen, denn für Ajax sollte man JavaScript bereits gut beherrschen

Dazu kann ich dir folgende Tipps geben

Formularprüfung
Formularprüfung
Mit Javascript Formulare überprüfen

Oder wenn es schon was fertiges sein soll, schau dich mal hier um
DeveloperChannel.de - kostenlose JavaScript Skripte: Formular-Check

Bei weiteren Fragen helf ich dir dann natürlich gerne weiter :slight_smile:

PS: Ich moove das dann mal nach JavaScript [COLOR=„Red“]MOVED

Mhhp alles schön und gut, so wie ich sehe dient dies aber nur, ob die Felder ausgefüllt sind ect. meine absicht ist, das man 2 Wörter eingeben kann und nur 1 richtiges ist, und es soll halt in einer Spalte angezeigt werden! (im selben dokument)

Oder habe ich dies alles falsch verstanden, das das auch damit geht?

MfG Marcel

ja das geht auch damit, hier mal ein mini-Beispiel

<head>
<script>
function check(v,a,s) {
 if(v == a)
   document.getElementById(s).innerHTML = "RICHTIG"
else
   document.getElementById(s).innerHTML = "falsch"
}
</script>
</head>
<body>
<input type="text" name="test" value="" id="feld" onkeyup="check(this.value,'for','status')">
<span id="status">falsch!</span>
</body>

Wenn du in das Feld for eingibst wird falsch zu RICHTIG

Wenn du meine Funktion benutzen willst, so ist sie aufgebaut:

function check(v,a,s) { if(v == a) document.getElementById(s).innerHTML = "RICHTIG" else document.getElementById(s).innerHTML = "falsch" }
und so rufst du sie auf (das kommt in den -Tag)

onkeyup="check(v,a,s)"

v = value des elementes (bekommst du mit this.value)
a = Was ist das richtige? (z.b. ‚for‘)
s = Id des Elementes in dem der Status richtig oder falsch erscheinen soll (z.b. ‚status‘)

onkeyup="check(this.value,'for','status')"

oO sieht sehr verwirrend aus!^^

naja also pass auf nochmal „Einfach“

du hast folgende JavaScript funktion (die steht im head bereich)

function check(v,a,s) { if(v == a) document.getElementById(s).innerHTML = "RICHTIG" else document.getElementById(s).innerHTML = "falsch" }

Wie du sehen kannst akzeptiert sie 3 Argumente (v,a und s)
Wie die Funktion an sich arbeitet ist ja egal, du musst nur wissen was du ihr Übergibst.

v ist der Wert des Input-Elementes das geprüft werden soll. Da der aufruf vom Input feld aufgerufen wird, bekommst du ihn über die variable this.value
this steht dabei für das input element, value für den inhalt desselben.

a ist der Wert der Richtig sein soll, also wenn du möchtest, dass man Hallo eingeben muss dann übergibst du

'Hallo'

die ’ sind nötig da es sich um ein string handelt.

s ist die id des Elementes in der der Status falsch oder RICHTIG angezeigt werden soll. wenn du also daneben noch eine spalte hast gibt ihr mit dem id-Tag einen id. z.B.

<td id="test">hier wird der status stehen</td>

also übergibst du die id, auch wieder mit ’ da es ein string ist

'test'

also haben wir sie zusammen, verpackt in den funktionsaufruf sieht das dann so aus:

check(this.id,'Hallo','test')

diese Funktion soll vom Input feld immer dann aufgerufen werden, wenn eine Eingabe getätigt wurde:

<input onkeyup="check(this.id,'Hallo','test')" [...]>

soweit noch mit gekommen?. Jetzt brauchst du nur noch ein Element in dem der Status angezeigt wird und es mit der id versehen:

[CODE]…

...[/CODE]

[HTML] [/HTML]

so in etwa?

fast, du hast nur den letzten parameter nicht richtig, er bestimmt wo das Ergebnis der Prüfung angezeigt werden soll

[CODE]

[/CODE]

oki, habe ich gemacht, geht aber irgendwie nicht, muss ich das noch nen button einbauen, aber bei javascript müsste man das theoretisch nciht machen!

das sollte ohn button gehen, zeig doch mal deinen code pls. Hast du die Funktion im QT stehen? was sagt die Fehlerkonsole?

[HTML]

..::exersise past perfect (Übungen)::..

Tenses

Für die Englischen Begriffe wurden im HTML-Script titel verwenden, das heißt, bleiben Sie mit der Maus auf einem Englischen Wort oder Satz, und es wird die Übersetzung angezeit!

zurück

zur Übersicht

Drucken




exersise past perfect (Übungen)

Finden Sie die richtige for des deutschen Wortes "seit". Wählen Sie ob for (Zeitspanne) oder since (Zeitpunkt).

Bitte Achten Sie darauf, das Sie die Wörter richtig schreiben!


Zeitwort Ihre Eingabe Status
three weeks
3 o´clock
two years
yesterday afternoon
1967
several minutes
they married
days
last year
half an hour
a quarter past seven
midnight

zurück

zur Übersicht

Drucken

[/HTML]

dieses input feld <input type="text" maxlength="50" name="three_weeks" id="status" onkeyup="check(this.value,'for','status')"></input>
darf nicht die selbe id haben wie das feld in dem der status angezeigt wird, wenn du da die id löscht dann geht es.

also so?

[HTML]
[/HTML]

jop (mindestlänge)

Ok habe es so eingegeben aber es geht nicht!

[CODE]

..::exersise past perfect (Übungen)::..

Tenses

Für die Englischen Begriffe wurden im HTML-Script titel verwenden, das heißt, bleiben Sie mit der Maus auf einem Englischen Wort oder Satz, und es wird die Übersetzung angezeit!

zurück

zur Übersicht

Drucken




exersise past perfect (Übungen)

Finden Sie die richtige for des deutschen Wortes "seit". Wählen Sie ob for (Zeitspanne) oder since (Zeitpunkt).

Bitte Achten Sie darauf, das Sie die Wörter richtig schreiben!


Zeitwort Ihre Eingabe Status
three weeks
3 o´clock
two years
yesterday afternoon
1967
several minutes
they married
days
last year
half an hour
a quarter past seven
midnight

zurück

zur Übersicht

Drucken

[/CODE]

Bei mir geht das …::exersise past perfect (Übungen)::…