blackbonsai
Goto Top

Selected funktioniert nur bei änderung des Select name

Hallo hiermit rufe ich eine Dropbox auf mit den Inhalten einer Tabelle aus mySQL.
Nun das funktioniert gut, nur leider immer nur Einmal. Beim ändern der WHERE des query zu $row ändert sich der selected zwar jedoch wird immer noch der alte angezeigt.

<select name="Kanton">   
                <?php 
                  $rowkant = mysql_fetch_assoc($querykant);
 
                  // für jeden Eintrag ein Option-Tag erstellen                 
                  do { 
                      echo '<option value="'.$rowkant['kan_id'].'"'.( $row['ban_kanid'] == $rowkant['kan_id'] ? " selected": "").'>'.$rowkant['kan_name'].'</option>';   
                  } while ($rowkant = mysql_fetch_array($querykant))
                ?> 
                
  			</select>
das giebt sowas aus
                <option value="1" selected>ZH</option><option value="2">BE</option><option value="3">LU</option><option value="4">UR</option><option value="5">SZ</option><option value="6">OW</option><option value="7">NW</option><option value="8">GL</option><option value="9">ZG</option><option value="10">FR</option><option value="11">SO</option><option value="12">BS</option><option value="13">BL</option><option value="14">SH</option><option value="15">AR</option><option value="16">AI</option><option value="17" >SG</option><option value="18">GR</option><option value="19">AG</option><option value="20">TG</option><option value="21">IT</option><option value="22">VD</option><option value="23">VS</option><option value="24">NE</option><option value="25">GE</option><option value="26">JU</option>   
Bei dem Wechsel wird selected korrekt auf value 17 verschoben. Jedoch bleibt die auf der Seite ausgewählte option die 1
                <option value="1" >ZH</option><option value="2">BE</option><option value="3">LU</option><option value="4">UR</option><option value="5">SZ</option><option value="6">OW</option><option value="7">NW</option><option value="8">GL</option><option value="9">ZG</option><option value="10">FR</option><option value="11">SO</option><option value="12">BS</option><option value="13">BL</option><option value="14">SH</option><option value="15">AR</option><option value="16">AI</option><option value="17" selected>SG</option><option value="18">GR</option><option value="19">AG</option><option value="20">TG</option><option value="21">IT</option><option value="22">VD</option><option value="23">VS</option><option value="24">NE</option><option value="25">GE</option><option value="26">JU</option>   

Wen ich jetzt den select name ändere und dan die Seite neu lade wird das select korrekt auf 17 angezeigt.

Der Name kann dan auch nichmehr verwendet werden. Er bleibt auf dem select hängen den er beim ersten mal hatte.

Wo mach ich den Fehler?

Content-ID: 207563

Url: https://administrator.de/contentid/207563

Ausgedruckt am: 20.11.2024 um 18:11 Uhr

EvilMoe
EvilMoe 05.06.2013 um 17:24:35 Uhr
Goto Top
Hallo,
ich kann noch nie genau nachvollziehen wo genau Dein Problem liegt.

Du hast also eine select Box, wählst dort einen Eintrag aus, und dann passiert was?


// Warum hast du im Code beides? Ein würde doch völlig reichen.
$rowkant = mysql_fetch_assoc($querykant); 
$rowkant = mysql_fetch_array($querykant)



// würde doch reichen wenn Du es so machst
 while ($rowkant = mysql_fetch_assoc($querykant)) {
                      echo '<option value="'.$rowkant['kan_id'].'"'.( $row['ban_kanid'] == $rowkant['kan_id'] ? " selected": "").'>'.$rowkant['kan_name'].'</option>';    
.
  }
blackbonsai
blackbonsai 05.06.2013 um 20:51:35 Uhr
Goto Top
Das ist sicher schonmal hübscher danke.

Aber das ist nicht das Problem. Das ist ein Formular welches aufgerufen wird mit einr vorgabe die im SQL von $row drin ist. Wenn sich diese vorgabe verändert muss sich demensprechend das selected von select"Kanton" ändern.

Jetzt ist das Problem das sich das selected ändert aber nur beim ersten Aufrufen. Wen ich beim zeiten mal die vorgabe ändere den Namen von Kanton aber nicht passiert nichts mehr.

Freundliche Grüss
Bonsai
Arano
Arano 05.06.2013 aktualisiert um 21:05:25 Uhr
Goto Top
Hi,

ich verstehe schon was dein Problem ist/sein soll,,, denke ich
und nur um auf Nummer sicher zu gehen:
Bei dem Wechsel wird selected korrekt auf value 17 verschoben.
"Wechsel" bedeutet:
  1. andere Option auswählen,
  2. Formular absenden (IDs in Datenbank werden aktualisiert)
  3. neues HTML wird generiert (damit auch neues Dropdown) und
  4. an den Browser ausgegeben (Seite neu geladen)

Du speicherst ERST die Änderung, liest DANACH die Daten aus der DB und gibst sie aus !?

Was, wenn du eine andere Option auswählst, speicherst (danach wird die alte Option noch als "selected" markiert angezeigt) und du nun mehrfach F5 oder Strg+F5 drückst !?

Was, wenn die eine andere Option auswählst, speicherst (danach wird die alte Option noch als "selected" markiert angezeigt) und du nun wieder eine andere Option auswählst und speicherst ? Wird dann immer noch die erste als "selected" angezeigt oder jetzt vielleicht die zweite oder tatsächlich schon die dritte ?

Da mir dieser Code als funktionsfähig erscheint.
DEBUGe ein bisschen:
Gebe zusätzlich zu dem Option-Namen auch die KAN_ID und die BAN_ID aus um zu vergleichen, z.B.
while( $rowkant=mysql_fetch_assoc($querykant) )
{
    echo '<option value="'.$rowkant['kan_id'].'"'  
         .( $row['ban_kanid']==$rowkant['kan_id'] ? "selected" : "" )  
         .'>'  
         .$row['ban_kanid'].'='.$rowkant['kan_id'].'?'.( $row['ban_kanid']==$rowkant['kan_id'] ? "ja" : "nein").' - '  
         .$rowkant['kan_name'].'</option>';  
    // <option value="1">1=17?nein - ZH</option> 
    // <option value="2">2=17?nein - BE</option> 
    // ...
    // <option value="17" selected>17=17?ja - SG</option> 
}

Der Name kann dan auch nichmehr verwendet werden. Er bleibt auf dem select hängen den er beim ersten mal hatte.
Mit dem Name des selects darf das eigentlich nichts zu tun haben... hast du vielleicht irgendwelche Browser-Plugins/-Addons die sich deine Eingaben merken ?


Mehr Ideen habe ich auch nicht !


~Arano
blackbonsai
blackbonsai 05.06.2013 um 21:12:55 Uhr
Goto Top
Ok, hab mir jetzt mal noch den Chrome gezogen, und da läufts einwandfrei
Firefox macht leider weiterhin probleme aber dan ist es vielleicht wirklich ein Plugin das sich das Merkt.

Ich danke euch für die schnelle hilfe!