AJAX: 3 php echos wiedergeben

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • AJAX: 3 php echos wiedergeben

    Hallo,

    ich versuche mich eben an einer sehr simplen Warenkorb Funktion, dazu sende ich die Summe der Produkte per Ajax an ein Sript das die Summe in einer Session speichern soll. In meiner Session speichere ich gleichzeitig auch die MwSt plus die Totalsumme. Wie ich einen einzelnen Wert zurückgeben kann, weiss ich:

    document.getElementById("output").innerHTML = http_request.responseText;

    Aber ich habe 3 Rückgabewerte,

    echo $sum = sprintf("%01.2f",$_SESSION['sum']);
    echo $iva = ($sum * 16 / 100);
    echo $tot = $sum + $iva;

    wie kann ich die ausgeben? Bzw. wie komme ich an die ran?
  • ok, habe grade etwas in älteren Beiträgen entdeckt:

    Quellcode

    1. if (http_request.status == 200) {
    2. var update = new Array();
    3. var response = http_request.responseText;
    4. if(response.indexOf('||' != -1)) {
    5. update = response.split('||');
    6. document.getElementById(update[0]).innerHTML = update[1];
    7. }
    8. }


    ein alert(response); ergibt nun alle 3 Zahlen nacheinander.

    Allerdings verstehe ich das nicht:
    if(response.indexOf('||' != -1)) {

    response.indexOf('||' ); ergibt bei mir immer -1

    Wo sollen diese Zeichen herkommen?
    Ich kann auch in dem Wiki Beispiel nichts finden...
  • Ermittelt das erste Vorkommen eines Zeichens oder einer Zeichenkette innerhalb einer Zeichenkette und gibt zurück, an wie vielter Stelle das Zeichen in der Zeichenkette steht. Die Zählung beginnt bei 0. Wenn die Suche erfolglos ist, wird -1 zurückgegeben.

    http://de.selfhtml.org/javascript/objekte/string.htm#index_of

    Wenn du immer -1 erhältst, dann sind die doppelten Pipes nicht vorhanden?
    und der String kann nicht in Element ID und Inhalt aufgetrennt werden
  • beim howto mit einem select werden die pipes nicht gebraucht
    beim wiki zu [coderwiki]HowTos/Ajax-Inhalte-mit-PHP-nachladen[/coderwiki] sind die doppelten pipes in der dummyOutput Funktion

    Quellcode

    1. function dummyOutput($beispiel, $i, $htmlID)
    2. {
    3. echo $htmlID.$i.'||';
    4. foreach($beispiel as $word) {
    5. echo $word." ".$i." ";
    6. }
    7. echo '||';
    8. }


    also einfach id||inhalt||id||inhalt||id||inhalt als ausgabe produzieren
  • Verstehe ich das richtig, daß man mittels response.indexOf das Zeichen || innerhalb der func.php sucht, die man vorher mittels req.open('GET', 'func.php?...) geladen hat bzw deren Inhalt, um dann die Stelle zu finden, an der man das Zeichen || findet!? Nehmen wir an, in der func.php steht wie in deinem Beispiel mit den Dropdown-Menüs echo 'select'.$_GET['dest'].'|| '; - dies dient nur dazu, um die Stelle des Zeichens größer -1 zu erreichen? Oder warum muß ich das an dieser Stelle schreiben? Ich verstehe zwar das Beispiel auf der SelfHTML-Seite - jedoch nicht dein Dropdown-Menü Bsp..

    Und was macht dabei split, wenn ich Select-Felder (Dropdown-Menüs) habe?
    Kannst du mir das bitte ausführlich erklären? Damit würdest du mir sehr weiterhelfen!!!

    Gruß

    Jochen
  • indexOf nutze ich aber nur um zu überprüfen ob das || überhaupt existiert
    das split splittet einen string in ein array

    wie im wiki beschrieben:
    content2||ist 2 eine 2 eigene 2 die 2 einige 2 mit 2 Ihr 2 Datenbank 2 und 2 herzlichst 2 so 2 den 2 Tagen 2 Upload 2 Wir 2 Beiträge 2 dem 2 soll 2 Anfänger 2 der 2 Gratis-Hoster 2 Willkommen 2 in 2 und 2 Schreibt 2 Tos 2 W


    1. array[0] = content2
    2. array[1] = ist 2 eine 2 eigene 2 die 2 einige 2 mit 2 Ihr 2 Datenbank 2 und 2 herzlichst 2....


    http://de.selfhtml.org/javascript/objekte/string.htm#split
    Zerlegt Zeichenketten in mehrere Teilzeichenketten. Die erzeugten Teilzeichenketten werden in einem Array gespeichert. Erwartet als Parameter ein Begrenzerzeichen oder eine Begrenzerzeichenfolge, die als Trennmerkmal für die Teilzeichenketten verwendet werden soll. Optional kann als zweiter Parameter noch übergeben werden, wie viele Split-Vorgänge maximal erzeugt werden sollen.
  • "Marcus Gnaß" schrieb:

    Warum verwendest du nicht JSON wenn du mehrere Werte zurückgeben willst?

    Ich nutze nur noch JSON - JSON ist genial, man kann schnell Objekte programmiersprachenunabhängig austauschen und dazu ist es noch so viel kleiner als XML.

    Aber ich denke die "älteren" HowTo's muss man nicht unbedingt umstellen. Zumal man für JSON noch ein PHP Script braucht (json_encode() ist nicht überall vorinstalliert)