PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : AJAX andere ausgabe in Chrome


ravage
2010-09-23, 13:30:17
Moin.

Kein plan ob ihr mir dabei überhaupt helfen könnt. Das ganze ist recht komplex und ich hab kein Plan wieso der mist nicht läuft. Ich fange erst mal mit mit dem wichtigsten Teil des Quelltextes an.

Folgenden Code (nur der Ausschnitt um den es geht) füge ich über AJAX in eine seite ein:

echo "<h3>Ereignisse</h3><br>\n";
for($n=0;$n<count($ereignis[id]);$n++) {
echo '<form name="'.$ereignis[id][$n].'" onChange="ereignisChange(this, '.$spiel_id.')">';
echo '<select name="zeit">';
echo '<option value="">';
for($i=1;$i<"96";$i++) {
echo '<option value="'.$i.'"';
if( $ereignis[zeit][$n] == $i ) echo ' selected';
echo '>'.$i.'. Min';
}

echo '<select name="auswahl">';
echo '<option value="">';
echo '<option value="1"';
if( $ereignis[auswahl][$n] == "1" ) echo ' selected';
echo '>Elfmeter';
echo '<option value="2"';
if( $ereignis[auswahl][$n] == "2" ) echo ' selected';
echo '>Foul';
echo '<option value="3"';
if( $ereignis[auswahl][$n] == "3" ) echo ' selected';
echo '>Gelb';
echo '<option value="4"';
if( $ereignis[auswahl][$n] == "4" ) echo ' selected';
echo '>Rot';
echo '<option value="5"';
if( $ereignis[auswahl][$n] == "5" ) echo ' selected';
echo '>Tor';
echo '<option value="6"';
if( $ereignis[auswahl][$n] == "6" ) echo ' selected';
echo '>Einwechslung';
echo '</select>';

echo '<select name="seite">';
echo '<option value="">';
echo '<option value="heim"';
if( $ereignis[seite][$n] == "heim" ) echo ' selected';
echo '>Heim';
echo '<option value="gast"';
if( $ereignis[seite][$n] == "gast" ) echo ' selected';
echo '>Gast';
echo '</select>';

echo '<select name="sp1">';
echo '<option value="0">';
for($i=0;$i<count($aufstellung);$i++) {
echo '<option value="'.$aufstellung[$i].'"';
if( $ereignis[sp1][$n] == $aufstellung[$i] ) echo ' selected';
echo '>'.getUser($aufstellung[$i], "name", 0);
}
echo '</select>';

echo '<select name="sp2">';
echo '<option value="0">';
for($i=0;$i<count($aufstellung);$i++) {
echo '<option value="'.$aufstellung[$i].'"';
if( $ereignis[sp2][$n] == $aufstellung[$i] ) echo ' selected';
echo '>'.getUser($aufstellung[$i], "name", 0);
}
echo '</select>';

echo '<input type="checkbox" name="erfolg"';
if( $ereignis[erfolg][$n] == "ja" ) echo ' checked';
echo '>Erfolgreich ';

echo '<input type="checkbox" name="del">Entfernen ';

echo '</form>';
}

{
echo '<form name="neu" onChange="ereignisChange(this, '.$spiel_id.')">';
echo '<select name="zeit">';
echo '<option value="">';
for($i=1;$i<"96";$i++) {
echo '<option value="'.$i.'"';
if( $ereignis[zeit][$n] == $i ) echo ' selected';
echo '>'.$i.'. Min';
}

echo '<select name="auswahl">';
echo '<option value="">';
echo '<option value="1"';
if( $ereignis[auswahl][$n] == "1" ) echo ' selected';
echo '>Elfmeter';
echo '<option value="2"';
if( $ereignis[auswahl][$n] == "2" ) echo ' selected';
echo '>Foul';
echo '<option value="3"';
if( $ereignis[auswahl][$n] == "3" ) echo ' selected';
echo '>Gelb';
echo '<option value="4"';
if( $ereignis[auswahl][$n] == "4" ) echo ' selected';
echo '>Rot';
echo '<option value="5"';
if( $ereignis[auswahl][$n] == "5" ) echo ' selected';
echo '>Tor';
echo '<option value="6"';
if( $ereignis[auswahl][$n] == "6" ) echo ' selected';
echo '>Einwechslung';
echo '</select>';

echo '<select name="seite">';
echo '<option value="">';
echo '<option value="heim"';
if( $ereignis[seite][$n] == "heim" ) echo ' selected';
echo '>Heim';
echo '<option value="gast"';
if( $ereignis[seite][$n] == "gast" ) echo ' selected';
echo '>Gast';
echo '</select>';

echo '<select name="sp1">';
echo '<option value="0">';
for($i=0;$i<count($aufstellung);$i++) {
echo '<option value="'.$aufstellung[$i].'"';
if( $ereignis[sp1][$n] == $aufstellung[$i] ) echo ' selected';
echo '>'.getUser($aufstellung[$i], "name", 0);
}
echo '</select>';

echo '<select name="sp2">';
echo '<option value="0">';
for($i=0;$i<count($aufstellung);$i++) {
echo '<option value="'.$aufstellung[$i].'"';
if( $ereignis[sp2][$n] == $aufstellung[$i] ) echo ' selected';
echo '>'.getUser($aufstellung[$i], "name", 0);
}
echo '</select>';

echo '<input type="checkbox" name="erfolg"';
if( $ereignis[erfolg][$n] == "ja" ) echo ' checked';
echo '>Erfolgreich ';

echo '<input type="checkbox" name="del">Entfernen ';

echo '</form>';
}

Folgendes machen die Browser daraus:

Firefox:
http://ravage.dyndns.org/formtest.html

Chrome:
http://ravage.dyndns.org/formtest_chrome.html

Ich seh grad der IE8 macht es genau so wie der Chrome. Ich Steig nicht durch.

Also worum es geht könnte man sich ja denken, ist aber überhaupt nicht wichtig an dieser stelle.

Was man aber sieht, ist dass die Auswahl des Ereignisses beim Firefox richtig ausgegeben wird, beim Chrome (und IE8) jedoch nicht. Und ich hab absolut keinen Plan warum das nicht geht.

Ich hab noch andere Forms die ich genau gleich per AJAX übergebe und diese funktionieren problemlos.

Vielleicht hat ja irgendwer von euch eine Idee auf die ich noch nicht gekommen bin.

Verzweifelte Grüße

Ralf

/EDIT:

Hier das ganze mal Live. Einfach unter Ereignisse auf Editieren klicken.

http://ravage.dyndns.org/formtest/index.php?spiel_id=2

Im Firefox kann man lustig neue Ereignisse hinzufügen. Beim Chrome und im IE gehts einfach nicht... kotz!

/EDIT2: Im Chrome geht das einfügen von Ereignissen überhaupt nicht. Also nicht mal ohne den Ereignis Typ. Da muss der Fehler also wohl viel eher passieren, nur warum gehts im Firefox? :confused:

/EDIT3: Wah ich hab vergessen die Selectbox mit der Zeitangabe zu schliessen (</select>). Dem Firefox scheint das nichts auszumachen...

Nur klappt das onChange im Chrome noch immer nicht... Gna!

Sephiroth
2010-09-23, 15:06:00
ich tät erstmal damit anfangen, die option-tags auch zu schließen

ravage
2010-09-23, 15:30:13
Ok Punkt für dich, aber das raffen Moderne Browser auch so. :)

Anscheinend muss ich die onChange Option im Chrome in den Selectboxen eintragen und nicht in der Form selbst.

Hat da schon wer Erfahrungen mit ob das immer so ist?

Gast
2010-09-23, 18:21:17
Ok Punkt für dich, aber das raffen Moderne Browser auch so. :)
FAIL!
Wenn du kein standardkonformes html produzierst ist das was der Browser daraus macht undefiniert! Wenn es in manchen Browsern trotzdem wie gewünscht aussieht ist das reiner Zufall...

Vor allem solltest du aber den ersten select-Tag wieder schließen.

Gast
2010-09-23, 18:26:54
Hier das ganze mal Live. Einfach unter Ereignisse auf Editieren klicken.

http://ravage.dyndns.org/formtest/index.php?spiel_id=2
Da hast du aber noch ganz schön heftige Probleme beim Zeichensatz mit drin.
Ich rate dazu alles in utf-8 zu machen und das dann auch im HTTP-Header anzugeben. Wenn du Text aus anderen Quellen verwendest hilft iconv.

ravage
2010-09-23, 18:57:21
@Gast1: Jo wie im EDIT3 geschrieben, hab ich das schon gesehen. Und grundsätzlich stimme ich dir zu mit dem undefinierten zustand. Aber bei den Option Feldern macht das jeder mir bekannte Browser schon richtig. Die ganze Sache ist eh noch im Aufbau und noch lang nicht final.

@Gast2: Jo das mit dem Zeichensatz bekomm ich auf meinem Testserver zuhause nicht gebacken. Auf dem Live Server im Netz passt aber alles. Das ganze ist ne gewachsene Struktur mit verstrickter Datenbank, und mir fehlt einfach die Zeit das ganze gerade zu ziehen. Geplant ist sowas schon ewig ;)

/EDIT: Live Server: http://gws3.de/index.php
Da ist die Geschichte um die es hier geht aber noch nicht wirklich aktiv.