Der Picknicker 0 Melden Teilen Geschrieben 11. Mai 2007 (bearbeitet) Moin, hier können Fragen zu Javascript rein, da im Hausaufgabenthread ja doch niemand antwortet. Hier schaun vielleicht auch mehr Leute vorbei, die sich damit auskennen. Also, wir müssen im Info-Unterricht ein Pizzabestellungsformular auswerten. Ich kann die ganzen Daten auslesen und so, klappt alles. Allerdings soll dann nach dem man abgesendet hat seine Bestellung aufgelistet bekommen. Das macht sich natürlich schlecht in einem alert oder sowas. Das sollte also auf ner extra Seite ausgewertet werden. Allerdings weiß ich nicht, wie man die variablen aus dem Formular in das neue Auswertedokument übergibt. Kann mir jemand sagen wie das geht? Bearbeitet 16. Juni 2007 von Corsair Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Kantholz 691 Melden Teilen Geschrieben 11. Mai 2007 (bearbeitet) hmm, hört sich für mich mehr nach PHP als nach javascript aus. also wie ich das aufgefasst habe, läuft dass so: du hast ne seite mit nem formulat und sendest die daten via POST oder GET an eine andere weiter, mit der du die Daten verwertest also hast du auf der einen seite <form action="auswertung.php" method="POST"> <input type="text" name="pizzabelag" value="hier alle Zutaten die auf die Pizza sollen aufführen" /> <input ..... > <input type="submit" value="absend0rn"> </form> und die "auswertung.php" könnte z.B. so aussehen <html> <head> <title>Auswertung</title> sonstiges head zeugs <script type="text/javascript"> var pizzabelag = "<?php echo $_POST[pizzabelag]; ?>"; %der rest vom javascript% </script> </head> <body> blah blah. Auswertung deiner Pizzabestellung blah blah. </body> </html> so würds ich jedenfalls machen. Ausser das ganze soll ohne Seitenrefresh geschehen, also auf der selben Seite, da bietet sich dan AJAX und halt javascript mehr an. Ich hab z.B. sowas ähnliches mit nem Clientseiten Loginsystem gemacht. Also via on_sonstwas commandos javascript funktionen "eingeleitet". Sieht bei mir so aus: LOGIN: <form name="login" action="java script: submitUserInformation();"> <input id="username" name="username" value="username" type="text" size="20" maxlength="20"> <input id="password" name="password" value="password" type="password" size="20" maxlength="20" onChange="submitUserInformation();"> </form> und die Javascript Funktion: <script type="text/javascript"> <!-- validuser = "Kantholz"; validpassword = "verrat ich natuerlich jetzt net, is ja ganz klar."; function submitUserInformation() { if (document.getElementById("username").value = validuser) { if (MD5((document.getElementById("password").value) == validpassword) { //los, zeig mir den Inhalt an, den ich sehen soll, nachdem ich mich erfolgreich eingeloggt habe } } } //--> </script> so, ich hoffe ich konnte weiterhelfen. Wenn nicht, einfach mal via PM anschreiben, weil ich nicht weiss ob ich den Fred wieder finde Bearbeitet 11. Mai 2007 von Kantholz Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Der Picknicker 0 Autor Melden Teilen Geschrieben 11. Mai 2007 Naja. Ist ja so, dass wir in Info gerade Javascript machen, da wäre es schlecht, wenn ich die Aufgabe mit PHP lösen würde ^^ Es muss doch irgendne Möglichkeit geben, wie ich die Bestellung strukturiert (also nicht in nem alert) ausgeben kann. Kann man eigentlich in document.write HTML-Text reinpferchen? Oder geht das nicht? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Kantholz 691 Melden Teilen Geschrieben 12. Mai 2007 (bearbeitet) sicher kannst du mit document.write auch html text schreiben. Bsp: <javascript type="text/javascript"> document.write("<div id=\"Auswertung\""); document.write(document.getElementById("pizzabelag").value); document.write("</div>"); </javascript> allerdings würd ich da ne funktion für anbieten, die dass dann irgentwo in ein vorhergesehenes Feld einfügt oder so. Ziemlich aufwending mit Javascript wie ich finde, und soweit ich weiss, kann man mit javascript keine Variablen über mehrere Seiten hinweg übertragen. senden geht, klar, einfach als GET Parameter anhängen, also: window.location = "index.php?width="+hoehe+"&height="+breite+"&title=Pizzabelag"; allerdings wüsste ich nicht, wie ich wieder an meine Daten rankomm, deswegen MÜSSTE ich da PHP verwenden. Bearbeitet 12. Mai 2007 von Kantholz Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Der Picknicker 0 Autor Melden Teilen Geschrieben 12. Mai 2007 Hm..danke erstmal für die Ansätze. Ich werd da nohcmal nen bisschen weitergooglen, hab ja noch bis übernächsten Donnerstag Zeit Findet sich bestimmt ne LÖsung. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Kantholz 691 Melden Teilen Geschrieben 12. Mai 2007 wenn noch irgentwas unklar ist, einfach fragen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Monoman 0 Melden Teilen Geschrieben 12. Mai 2007 @Oberon: Hab' dir mal fix was zusammengeschrieben: <?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>Dokument</title> <script type="text/javascript"> /* <![CDATA[ */ function zeigeBestellung() { // Variablen initialisieren var Eingaben = new Object(); var Ausgabe = ""; with (document) { // Werte aus dem Formular in Objekt schreiben Eingaben["Größe"] = getElementById("pizza_groesse").value; Eingaben["Belag"] = getElementById("pizza_belag").value; Eingaben["Extras"] = getElementById("pizza_extras").value; } // Ueberschrift in Ausgabe einfuegen Ausgabe += "Ihre Bestellung<br /><br />"; // Durch gesamtes Objekt laufen for (var Bezeichnung in Eingaben) // Weiteres Formularfeld in Ausgabe einfuegen Ausgabe += Bezeichnung + ": " + Eingaben[Bezeichnung] + "<br />"; // Zusammengesetzte Ausgabe in vorgesehenen Container schreiben document.getElementById("bestellung").innerHTML = Ausgabe; // 'false' zurueckgeben, damit das Formular nicht abgesendet wird return false; } /* ]]> */ </script> </head> <body> <div id="bestellung"> <!-- Hier soll spaeter unsere Bestellung aufgelistet werden --> </div> <br /> <!-- Das Formular, sollte selbsterklaerend sein --> <form action="test.html" method="post" onsubmit="return zeigeBestellung();"> Größe: <input type="text" id="pizza_groesse" /><br /> Belag: <input type="text" id="pizza_belag" /><br /> Extras: <input type="text" id="pizza_extras" /><br /> <br /> <input type="submit" value="Bestellen" /> </form> </body> </html> @Kantholz Ich glaube, bei deinem Code musst du nochmal drüberschauen - da sind nämlich noch Fehler drin. MfG Monoman Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Kantholz 691 Melden Teilen Geschrieben 12. Mai 2007 da sind Fehler drin? ach naja, und wenn, mit Javascript hatt ichs noch nie besonders.. ist wohl ein weiterer Grund warums mit FF geht aber mitm Internet Exploder nicht. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Monoman 0 Melden Teilen Geschrieben 12. Mai 2007 Mein Beispiel funktioniert im Internet Explorer nicht? ... Bei dir sind nicht nur Fehler im JavaScript, sondern auch in PHP (ok, wobei die beiden letzteren keine Fehler im eigentlichen Sinne sind, ist nur unsauberer Stil ). Bei JavaScript wäre da bspw. window.location = "index.php?width="+hoehe+"&height="+breite+"&title=Pizzabelag"; - Das Objekt nennt sich window.location.href if (document.getElementById("username").value = validuser) { // ... } - Eine Zuweisung in einer Verzweigung? Bei PHP ist mir nur folgendes aufgefallen: <?php echo $_POST[pizzabelag]; ?> - PHP wird folgendes machen, wenn es versucht über den Index auf den Wert in $_POST zuzugreifen. 1. - PHP wird annehmen pizzabelag sei eine Konstante und sucht danach bzw. merkt sie sich vor. 2. - Erst beim zweiten Analyse-Durchgang merkt PHP, das pizzabelag keine Konstante ist und nimmt an das es ein String ist. Jetzt erst kann PHP auf den Wert zugreifen. MfG Monoman Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Kantholz 691 Melden Teilen Geschrieben 12. Mai 2007 erbsenzähler zu dem javazeug, hoppala, ist mir selber nicht aufgefallen mit der zuweisung... zu dem PHP Zeug: wir leben im 21. Jhd.: Die Rechner sind schnell, also kann PHP von mir aus noch so viele Runden drehen, aber ich erspar mit das Tippen von 2 Anführungszeichen naja, ist ja wurscht, ich geh pennen, mir fallen fast die Augen zu. ach ja: MEIN ding funzt mit IE net (das mit dem window.location (.href)), mit Fyrephocks gehts wunderbar Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Monoman 0 Melden Teilen Geschrieben 12. Mai 2007 [...] zu dem PHP Zeug: wir leben im 21. Jhd.: Die Rechner sind schnell, also kann PHP von mir aus noch so viele Runden drehen, aber ich erspar mit das Tippen von 2 Anführungszeichen [...] Mal schauen, ob dir das noch immer so egal ist, wenn du eine große Masse an Daten (nehmen wir mal an so 250000 - obwohl das noch eher gering ist), welche in einem assoziativem Array gespeichert ist, durchgehen, sowie bearbeiten musst und dir dann die Anführungszeichen ersparst, wobei deine Applikation um - sagen wir mal - 300% langsamer läuft... MfG Monoman Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Kantholz 691 Melden Teilen Geschrieben 13. Mai 2007 in so großem Stil arbeite ich bisher noch nicht... so Homeanwendungszeugs oder halt vllt. mal so kleinere Projekte wie mein Winamp Ding da... Naja, aber das ist sowieso ziemlich off topic. Ich weiss, ich kann halt nichts besonder gut, aber dafür von allem etwas, und das hat doch auch was Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Der Picknicker 0 Autor Melden Teilen Geschrieben 13. Mai 2007 Hui, danke @Monoman. Die Eingaben werden dann also in den div da reingeschrieben, oder wie? Das ist natürlich auch ne Variante. Muss ich auch mal ausprobieren ^^ Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Monoman 0 Melden Teilen Geschrieben 13. Mai 2007 (bearbeitet) [...] Die Eingaben werden dann also in den div da reingeschrieben, oder wie? [...] Jop, das innerHTML schreibt das ins div rein, ergo wird der Kommentar überschrieben, der sich in dem div zu Anfang befindet. @Kantholz Stimmt, bei kleinen Anwendungen lässt sich natürlich der Performance-Gedanke vernachlässigen. Da gibt's dann weitaus schlimmere Fehler zum Thema Sicherheit, die gerne mal gemacht werden. Aber das wird zu Off-Topic hier... MfG Monoman Bearbeitet 13. Mai 2007 von Monoman Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Der Picknicker 0 Autor Melden Teilen Geschrieben 23. Mai 2007 (bearbeitet) So, da ich die Aufgabe zu moin haben muss hab ichs mal eben gemacht. Funktioniert ohne Probleme. Dankö an euch beide. Bearbeitet 23. Mai 2007 von Oberon Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...