Schleife in ajax.php durch einen array ersetzen

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

  • Schleife in ajax.php durch einen array ersetzen

    Guten Tag Miteinander

    Es geht um das Ajax Beispiel: [wiki]Select-Auswahl mit AJAX Abhängigkeit[/wiki]

    Ich möchte die verschachtelte Schleife in ajax.php (die wie ich gesehen habe auch einen Array erzeugt), durch einen statischen Array ersetzen.
    Versucht habe ich den Array den die Schleife erzeugt nachzubauen (mit anderen Werten halt), wenn ich nun die Schleife durch meinen statischen array austauschen möchte,
    so bekomme ich nachher in der index.html nur den erstel Wert zu sehen. Hat also bei mir nicht geklappt ohne das ich wüsste warum.

    Wie müsste den ein array aussehen mit dem ich in der ajax.php die Werte (cat1,cat2,cat21,cat22) duch meine eigene ersetzen könnte?
    Das ajax.php ist als Textform als Anhang dazugesendet, falls jemand Details von meinem selbstgebauten Array ansehen möchte.

    Ich wäre um jeden Tipp dankbar
    herzliche Grüsse

    M.Koller
    Dateien
    • ajax.txt

      (5,68 kB, 285 mal heruntergeladen, zuletzt: )
  • Ja genau das war das Problem. Danke für die Hilfe.

    Nun habe ich nur noch das kleine Problem das überall bei den Attributen wo ein Umlaut (öäü) vorkommt ein "null" kommt.

    Ich habe versucht die Umlaute(zuerst mal die ü auszutauschen, und zwar so:

    $data= str_replace('ü', 'ü', $data);

    Denn mit dem zeichen 'ü' wird das ü dann richtig dargestellt.

    Momentan erfolglos versuche ich den Array eben die Zeichen zu ersetzen.

    Gibt es da eine einfache Lösung? auch mit verschachtelten "foreach's) habe ich es nicht hingebracht.

    Evt weiss jemand einen Tip.

    Gruess
    M.Koller
  • pegatech schrieb:

    $data= str_replace('ü', 'ü', $data);

    Denn mit dem zeichen 'ü' wird das ü dann richtig dargestellt.

    Momentan erfolglos versuche ich den Array eben die Zeichen zu ersetzen.

    Gibt es da eine einfache Lösung? auch mit verschachtelten "foreach's) habe ich es nicht hingebracht.


    Hi,

    wegen der Umlautproblematik schau dir mal diesen Wikieintrag an:
    easy-coding.de/wiki/php/utf-8-kodierung-sicherstellen.html
    Das sollte das ganze vereinfachen.

    Wenn du die tiefe des verschachtelten Arrays nicht kennst, dann kannst du das ganze mit einer Rekursion lösen.
    Ich verweise dich mal, da zu diesem Thema ja schon genug im Netz vorhanden ist :
    tut.php-q.net/recursion.html
  • Umlaute im Array

    Vielen Dank für die Antwort, ich werde das nachlesen.

    Nun habe ich aber den ganzen Nachmittag eingesetzt mit str_replace meinem Array zB schonmal das "ü" durch ein (als Beispiel) paar "aaaaaa's" zu ersetzen.

    Das zeigt der Array jetzt auch an,aber es wird nicht in den anfangs Array übernommen.
    Kann es sein das ich in meiner verschachtelung die Werte anders zurückschreiben muss?

    Denn bei meiner Verschachtelung schreibt sich der array korrekt heraus, aber der eigentliche Array ($data), nimmt die änderungen nicht an.

    Ich habe das Script mal angehängt. Evt war meine arbeit nicht umsonst und es fehlt nur was kleines das den Array aktualisiert und die Änderungen übernimmt.
    Ich mache nun für heute schluss, und werde morgen weitermachen, wobei ich die vorher gepostete Lösung dann noch zu verstehen versuche.

    Aber falls jemand gerade sehen würde was bei meinem Script in der verschachtelung noch fehlt, wäre ich megadankbar.

    schöne Grüsse
    Michel Koller
    Dateien
    • ajax.txt

      (6,39 kB, 227 mal heruntergeladen, zuletzt: )
  • Tut mir Leid, du bist auf der falschen Fährte. Deine Funktion arbeitet mit echos, etc. Das hat keinen Sinn.
    Nimm wieder die Datei aus dem ersten Posting und speichere sie utf8 kodiert ab.

    Wie speichert man utf8 kodiert ab? Das hängt von deinem Texteditor/deiner IDE ab. Welchen benutzt du? Tipp mal "dein texteditor utf8" bei google ein.

    Weiteres zu lesen:
    * [wiki]Unicode und PHP <= 5[/wiki]
  • Rückgabewerte den 'text' anstatt die 'id'

    Jetzt hat sich doch noch eine letzte Frage zu diesem Thema herausgestellt:

    Wenn ich nun meine Fussballmanschaft im index.html (momentan auf index.php umbenannt) ausgesucht habe und auf "Anfrage senden klicke",
    so bekomme ich folgende Rückgabewerte in den $_POST und $_REQUEST array's zurück:

    POST: Array ( [hauptkategorie] => 1 [u_kategorie] => 15 )
    REQUEST: Array ( [hauptkategorie] => 1 [u_kategorie] => 15 )

    Also die ID's meiner Abfrage, ich möchte aber den 'Text'?

    Ich denke man kann natürlich den ganzen Manschaftsarray aus ajax.php wieder in die index.php hereinsaugen und so den Namen mit den gelieferten ID's herausfinden,
    aber ist es nicht auch möglich das ich direkt als Rückgabe den Namen bekommen könnte?

    zB so? REQUEST: Array ( [hauptkategorie] => AxpoSuperLeague [u_kategorie] => Basel )

    Ich befürchte das dies möglich sein müsste, habe es aber bis jetzt nicht hingebracht.

    Danke für jeden Tipp
    Gruess
    M.Koller
    Dateien
    • index.txt

      (2,5 kB, 235 mal heruntergeladen, zuletzt: )
  • Text anstatt Nummer

    Ich möchte auf keinen Fall sagen das etwas nicht richtig ist,
    aber ich brauche eben den Text weil ich den Text in die Datenbank schreiben muss,
    und zwar desshalb weil sich der Array mit all seinen Manschaften verändern wird,
    Manschaften steigen ab andere steigen auf, die Nummern werden später nicht mehr stimmen.

    Drum muss ich denn Manschaftsnamen speichern, und nicht die Nummer.
    Würde der Array immer gleich bleiben wäre es schon klar mit der Nummer zu arbeiten.

    Der Array muss eben jedes Jahr manuell angepasst werden.
    Und drum muss ich eben unbedingt den Text haben.

    Muss ich also den aktuellen Array in die index.php reinsaugen und mit der Nummer denn Text herausfinden?
    Oder so hätte ich gehoft in der Javascriptdatei etwas kleines ändern sodass ich den Text bekomme.

    herzlichen Gruess
    Michel
  • wert statt id als Rückgabe

    Schade ich hätte mir erhoft in der Javascript Datei einfach angeben zu können das er mir den "text" und nicht die "id" liefert.
    Aber wenn ich dich richtig verstanden habe ist das nicht so einfach.

    Wenn ich so mit der ID denn Text raussaugen muss gibt das wieder einige Zeilen Code in die Index.php, und eben noch das
    reinziehen des Arrays, weil der nicht mehr im Namensraum.

    Beim Javascript bin ich leider völlig überfordert, mir würde es sehr helfen wenn ich wüsste in welchen Zeilen
    denn die Rückgabe gemanagt wird wenn man auf "daten absenden" drückt, evt kann ich schon dort was abändern das mir der 'Text' und nicht die 'id' geliefert wird.

    Danke für jeden Tipp
    Gruess
    M.Koller
  • pegatech schrieb:

    Beim Javascript bin ich leider völlig überfordert, mir würde es sehr helfen wenn ich wüsste in welchen Zeilen
    denn die Rückgabe gemanagt wird wenn man auf "daten absenden" drückt, evt kann ich schon dort was abändern das mir der 'Text' und nicht die 'id' geliefert wird.

    das ist ja der Fall den ich nicht empfehle - Den brauchst du nicht, er ist komplizierter.

    Mach also nur die php änderung mit dem Speichern.
    Packe dein array in eine seperate Datei, die du dann mit include einbindest - dann hast du auch keinen doppelten Code.
  • Gut vielen Dan, so habe ich es nun gemacht, einige if abfragen waren noch von nöten
    damit die Abfrage stimmt, aber ansonsten habe ich es so geschaft:
    Diese Zeitlen habe ich in die Index.php unten angesetzt.

    Quellcode

    1. include ("array.php");
    2. print_r($_POST);
    3. echo"<br><br>";
    4. if(isset($_POST['u_kategorie'])){
    5. $wert2=$_POST['u_kategorie'];
    6. $wert1=$_POST['hauptkategorie'];
    7. echo "wert1 :".$wert1."<br /><br />";
    8. echo "wert2 :".$wert2."<br /><br />";
    9. }
    10. if(isset($_POST['u_u_kategorie'])){
    11. $wert2=$_POST['u_u_kategorie'];
    12. $wert1=$_POST['u_kategorie'];
    13. echo "wert1 :".$wert1."<br /><br />";
    14. echo "wert2 :".$wert2."<br /><br />";
    15. }
    16. if(isset($_POST['u_kategorie'])){
    17. echo $data[$wert1][$wert2]['text'];
    18. }
    Alles anzeigen


    Nun bekomme ich immer den Wert, danke für Eure Hilfe
    Gruss
    M.Koller