You are not logged in.

  • Login

1

Sunday, August 30th 2009, 11:11pm

Schleife in ajax.php durch einen array ersetzen

Guten Tag Miteinander

Es geht um das Ajax Beispiel: Select-Auswahl mit AJAX Abhängigkeit

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
pegatech has attached the following file:
  • ajax.txt (5.68 kB - 43 times downloaded - latest: Mar 31st 2012, 4:53pm)

2

Monday, August 31st 2009, 8:51am

Dein Array ist zu tief verschachelt. Du hast eine unnötige Ebene eingeführt.
Zeilen 8 und 9 müssen so aussehen:

PHP Quellcode

1
2
$data=array(
    '0' => array ('id'=>'1', 'text'=>'Axpo Super League',


dementsprechend muss in #129 auch eine Klammer entfernt werden.

3

Monday, August 31st 2009, 11:22am

Umlaute

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

4

Monday, August 31st 2009, 3:12pm

$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:
http://www.easy-coding.de/wiki/php/utf-8…herstellen.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 :
http://tut.php-q.net/recursion.html

5

Monday, August 31st 2009, 5:10pm

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
pegatech has attached the following file:
  • ajax.txt (6.39 kB - 29 times downloaded - latest: Mar 31st 2012, 5:03pm)

6

Monday, August 31st 2009, 9:46pm

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:
* Unicode und PHP <= 5

7

Tuesday, September 1st 2009, 10:14am

Umlaute im Array

Meine Güte war das einfach.

-Datei im Texteditor (bei mit Editplus3) öffnen,
-Auf "speichern unter" und beim Dateinamen unten noch auf "UTF8" stellen.
-Auf speichern klicken

Vielen Dank für die Hilfe
Gruess
M.Koller
www.kollerit.ch

8

Tuesday, September 1st 2009, 5:27pm

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
pegatech has attached the following file:
  • index.txt (2.5 kB - 30 times downloaded - latest: May 4th 2012, 10:43pm)

9

Tuesday, September 1st 2009, 7:19pm

Warum möchtest du den den text?
Wenn du die Daten verarbeiten willst (in eine Datenbank eintragen) musst du sowieso wieder mit IDs arbeiten.
Und wenn du den Text haben willst, kommst du ja anhand der ID einfach an den Text heran.

Es ist schon vollkommen richtig die ID zu übertragen

10

Wednesday, September 2nd 2009, 9:11am

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

11

Wednesday, September 2nd 2009, 4:46pm

Also im letzten Schritt nur noch den Namen auszulesen, wenn du die ID schon ist der einfachere und flexiblere Weg.

12

Thursday, September 3rd 2009, 10:31am

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

13

Thursday, September 3rd 2009, 6:18pm

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.

14

Friday, September 4th 2009, 12:54pm

Löung

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.

PHP Quellcode

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


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

Similar threads

Social bookmarks