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.
das giebt sowas aus
Bei dem Wechsel wird selected korrekt auf value 17 verschoben. Jedoch bleibt die auf der Seite ausgewählte option die 1
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?
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>
<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>
<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?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 207563
Url: https://administrator.de/contentid/207563
Ausgedruckt am: 20.11.2024 um 18:11 Uhr
4 Kommentare
Neuester Kommentar
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?
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>';
.
}
Hi,
ich verstehe schon was dein Problem ist/sein soll,,, denke ich
und nur um auf Nummer sicher zu gehen:
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.
Mehr Ideen habe ich auch nicht !
~Arano
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:- andere Option auswählen,
- Formular absenden (IDs in Datenbank werden aktualisiert)
- neues HTML wird generiert (damit auch neues Dropdown) und
- 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