Help: HTML/PHP Checkbutton um eine Seite zu vergleichen

05/14/2013 21:13 CazZam#1
Hey Freunde,
ich habe eine dringende Hilfe...
Ich habe ein Projekt, auf das ich jetzt nicht genauer eingehen will, man aber Englisch üben kann.
Man kann dort zwischen verschiedenen Formen von z.B. to do wählen. Am Schluss gibt es einen Check button.

Jetzt mein Problem:
Ich habe alles mit HTML bzw. css geschrieben, und weiß leider nicht wie man es macht, dass dann dieser "Check Button" die Seite vergleicht und zeigt was falsch ist.
Der Sinn davon ist, dass wenn man die Aufgaben gemacht hat, man auf Check drückt, und hinter den Aufgaben z.B. ein Haken ist, wenn diese richtig beantwortet wurde, wenn nicht soll dieses mit einem roten Minus markiert werden und die richtige Lösung angezeigt werden.

Nun meine Frage:
Wie kann man diesen Check Button dazu bringen, dass er die Seite mit vorgebenen Lösungen vergleicht?
Hab jede Menge gegooglet, und kam schon soweit, dass man hierzu PHP benötige. In PHP bin ich allerdings ein absoluter Anfänger, daher bitte ich euch, mir eine kleine Erläuterung zu geben. Wäre wirklich nett!

Danke im voraus,

Mfg
05/14/2013 22:52 マルコ#2
Dazu solltest du Javascript lernen. Anders geht das nicht. Ein Vergleich ist eine logische Operation, keine Darstellung.
Von PHP rate ich ab. Das ist nur unnötiger Traffic und eher schwieriger umzusetzen als mit Javascript.

Im Prinzip machst du folgendes (nur solltest du zuerst alle Felder prüfen und erst wenn alle stimmen die Checkbox toggeln.):

Code:
$result = true;
$left = document.myForm.Form1Element.value;
$right = document.myForm.Form2Element.value;
if($left != $right)
  $result = false;

//test all other elements

document.getElementById("myCheckBox").checked = $result;
*Ich hoffe, das stimmt so. Ich wollte zur Abwechslung auf die Verwendung von jQuery verzichten. Wäre evtl sonst zu viel auf einmal.^^
05/15/2013 17:56 Mikesch01#3
Code:
var result = true;
var leftVal = document.myForm.Form1Element.value;
var rightVal = document.myForm.Form2Element.value;
if(leftVal != rightVal)
  result = false;

//test all other elements

document.getElementById("myCheckBox").checked = result;
Quote:
Originally Posted by マルコ View Post
*Ich hoffe, das stimmt so. Ich wollte zur Abwechslung auf die Verwendung von jQuery verzichten. Wäre evtl sonst zu viel auf einmal.^^
Seit wann verwendet man in JS ein Dollarzeichen für eine Variable? :) ;)
Habe nur mal die Variablen ausgebessert, weiss nicht ob dein Code trotzdem richtig ist oder nicht.
05/15/2013 18:51 マルコ#4
Quote:
Originally Posted by Mikesch01 View Post
Seit wann verwendet man in JS ein Dollarzeichen für eine Variable? :) ;)
Nja, seitdem ich PHP benutze. Ich finde das übersichtlicher.


Quote:
Originally Posted by Mikesch01 View Post
Habe nur mal die Variablen ausgebessert, weiss nicht ob dein Code trotzdem richtig ist oder nicht.
Und Variablen müssen nicht mit var deklariert werden. Zumindest nicht auf globaler Ebene.
Aber ist wahrscheinlich besser so, weil es ja in ne Funktion gekapselt werden muss (sry^^)
05/17/2013 15:56 MrSm!th#5
#moved
06/04/2013 23:56 CazZam#6
Also das mit den if-Befehlen verstehe ich.
Nur wie mache ich das, dass diese if Befehle erst nach Drücken des Check Buttons ausgeführt werden?
06/05/2013 08:51 マルコ#7
Du weißt schon, wie ein Button als HTML aussieht?
Du führst die Funktion als onClick Event aus!

Code:
<input type="button" value="Do It!" onClick="myFunction();">
06/05/2013 09:58 xyNNNNNN#8
Seit wann funktioniert so etwas nicht mit PHP? ;)
06/05/2013 10:44 マルコ#9
Quote:
Originally Posted by xyNNNNNN View Post
Seit wann funktioniert so etwas nicht mit PHP? ;)
Wer sagt, dass es nicht mit PHP ginge? Aber PHP wäre hier einfach falsch. Das ist unnötiger Traffic, der erzeugt würde.
06/05/2013 11:06 Bgzocker#10
Quote:
Originally Posted by マルコ View Post
Wer sagt, dass es nicht mit PHP ginge? Aber PHP wäre hier einfach falsch. Das ist unnötiger Traffic, der erzeugt würde.
wäre aber für Anfänger einfacher, oder?
06/05/2013 11:53 マルコ#11
Quote:
Originally Posted by Bgzocker View Post
wäre aber für Anfänger einfacher, oder?
nein, absolut nicht. PHP ist _nicht_ einfacher als JS. Wieso auch?
PHP wäre eher komplizierter, weil man erstmal eine Form erzeugen müsste, die alles korrekt abschickt. Und dann müsste das PHP Script die Form beim Abschicken wieder befüllen. Und den Checkbutton setzen.
In JS kann man sich rein auf die Aufgabe konzentrieren.
Texte vergleichen und Checkbutton setzen.
06/05/2013 16:01 derdave969#12
Der nachteil an JS ist einfach der, dass man es im Browser deaktivieren kann.
z.B mit NoScript ;)
Und traffic ist ja jetzt in der heutigen Zeit echt nicht mehr das Problem.
Noch haben wir nicht 2016 und die Telekomm drosselt auch noch nicht. Warum also nicht auf der sicheren Seite bleiben und das ganze in PHP realisieren?

Nur mal so meine Gedanken, nachdem ich den Thread überflogen habe :D

Edit:
Wenn ich nachher daheim bin und noch Zeit hab schreib ich dir nen kleinen Code ;)
06/05/2013 16:17 マルコ#13
Quote:
Originally Posted by derdave969 View Post
Der nachteil an JS ist einfach der, dass man es im Browser deaktivieren kann.
z.B mit NoScript ;)

[...]

Warum also nicht auf der sicheren Seite bleiben und das ganze in PHP realisieren?
Ja und? Wie viele Leute deaktivieren ihr JS? Wie viele Leute, die seine Seite besuchen, falls sie überhaupt öffentlich ist?


Quote:
Originally Posted by derdave969 View Post
Und traffic ist ja jetzt in der heutigen Zeit echt nicht mehr das Problem.
Noch haben wir nicht 2016 und die Telekomm drosselt auch noch nicht.
Nunja, wenn du nen Server hast, auf dem so und so viele Homepages laufen, und da meint einer dann, er müsste ne Doktorarbeit vergleichen lassen... Ich denke schon, dass das ganz schön Traffic macht, 2 riesen texte zu verschicken und anschließend wieder 2 riesen Texte zu downloaden - nur damit sie verglichen werden. Es geht einfach nicht ineffizienter! Leistung und Aufwand stehen absolut in keinem Verhältnis!
Ich denke, du gehörst zu denen, die bei höherer Besucherzahl sich dann fragen, warum alles so langsam ist, und einen stärkeren Server kaufen.
Einfach nur Schwachsinn. Meine Meinung.


Fakt ist, wenn ich vor diesem Problem sitzen würde und dafür Geld erhalten würde (35€ mind. mein Stundenlohn), dass ich das für jeden nutzbar umsetze, dann würde ich das zuerst in JS lösen. Statt einem Button würde ich ein submit Input verwenden und das ganze in eine Form packen. onClick würde dann false returnen, um die default Aktion zu unterbinden. Damit wäre es effizient und für jeden nutzbar.

Aber zur reinen Übung ist das Schwachsinn. Und für jede normale Homepage auch. Die einfachste, effizienteste und anfängerfreundlichste Lösung ist und bleibt JS.
Ich verstehe einfach nicht, warum ihr dem armen Kerl was anderes einreden wollt.
06/05/2013 17:06 CazZam#14
Hey, ich bins nochmal.
Danke für die zahlreichen Antworten und tut mir leid, dass ich mich so dumm anstelle, aber ich komme einfach nicht weiter.

Der Zweck: Entscheiden, ob das Statement "Tom do his homework." so richtig oder falsch ist (also mit Radiobuttons anklicken, dann auf Check drücken).
Ich will, dass sich ein Fenster öffnet, dass, wenn es richtig beantwortet wurde, ausgegeben wird: "Great!". Wenn es falsch beantwortet wird: "Sorry, thats wrong! Try again!"
Seht ihr vielleicht einen Fehler?

HTML Code:
<!DOCTYPE html>
<html>
    <head>
    	<title>Hilfe</title>

				<script>
				
 function vergleiche()
{ 

 var true = document.getElementById("radioTrue");
 var false = document.getElementById("radioFalse");
	
	if(true.checked)
	{
		alert("Sorry, thats wrong! Try again!");
	}
	else if(false.checked) 
	{
		alert("Great!");
	}
}
				</script>

	</head>
			
<body style="background-color:#FFFFCC">
			
	<table>
        <colgroup width="150" span="3"></colgroup>
        <thead>           
			<tr>
            <th>Statement</th>
            <th>True</th>
            <th>False</th>
			</tr>
                
        </thead>
            
		<tbody>

		<tr>
            <td align="center">Tom do his homework.</td>
            
            <td align="center"><input type="radio" id="radioTrue" name="Radio" value="True"></td>
               
            <td align="center"><input type="radio" id="radioFalse" name="Radio" value="False"></td>
        

                </tr>
		 </tbody>
	</table>
	<br>
		 
		 <input type="button" value="Check!" onClick="vergleiche()">
		 
		 
</body>
</html>
Ich finde da irgendwie keinen Fehler, ich such schon ewig :(
Danke im voraus!
06/05/2013 17:20 flogi333#15
Quote:
var true = document.getElementById("radioTrue");
var false = document.getElementById("radioFalse");
Du darfst deine Variablen nicht true oder false nennen..
Das sind reservierte Wörter