Zum Inhalt springen
Der Picknicker

allgemeine Programmierfragen

Empfohlene Beiträge

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 von Corsair
Link zu diesem Kommentar
Auf anderen Seiten teilen

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 :P

Bearbeitet von Kantholz
Link zu diesem Kommentar
Auf anderen Seiten teilen

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

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 von Kantholz
Link zu diesem Kommentar
Auf anderen Seiten teilen

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

@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&ouml;&szlig;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&ouml;&szlig;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

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

Mein Beispiel funktioniert im Internet Explorer nicht? :blink:

...

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 :P).

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? :blink: 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

erbsenzähler :P

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 :blink:

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

[...] 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 :blink: [...]

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... :D

MfG

Monoman

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 :puuuh:

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

[...] 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 von Monoman
Link zu diesem Kommentar
Auf anderen Seiten teilen

So, da ich die Aufgabe zu moin haben muss hab ichs mal eben gemacht. Funktioniert ohne Probleme. Dankö an euch beide.

Bearbeitet von Oberon
Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden


  • Wer ist Online   0 Benutzer

    • Keine registrierten Benutzer online.
×
×
  • Neu erstellen...

Wichtige Information

Wir haben Cookies auf Deinem Gerät platziert. Das hilft uns diese Webseite zu verbessern. Du kannst die Cookie-Einstellungen anpassen, andernfalls gehen wir davon aus, dass Du damit einverstanden bist, weiterzumachen.