php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen : selectbox - id in 2. Select-Box übernehmen


chrisphp
12-04-2005, 12:56
Hallo,

habe einen kleinen Javascript Code der den Wert einer Select-Box in ein Textfeld übergibt und einen Wert in ein "hidden" Feld.

Jetzt will ich den Code aber abwandeln das ein Wert ins Textfeld geschrieben wird (was ja kein Problem ist, weil es funktioniert ja) und der zweite Wert soll der richtige Eintrag aus einer 2. Select-Box ausgewählt werden.

Hier mal der Code:

<script language="Javascript">
function updateto()
{
var phonebook = document.pn.pn_username_phonebook.options
[document.pn.pn_username_phonebook.selectedIndex].value')
var arr_phonebook = phonebook.split(',');
if(arr_phonebook[0] != '' && arr_phonebook[1] != '')
{
document.pn.pn_username.value = arr_phonebook[1];
document.pn.pn_userid.value = arr_phonebook[0];
}
document.pn.pn_username_phonebook.selectedIndex = 0;
}
</script>


Wie muss ich das jetzt anstellen damit Wert 1 (id) aus einer 2. Select-Box gewählt wird, sprich dann der Eintrag der Select-Box angezeigt wird der denselben Wert hat wie arr_phonebook[1]?

Christoph

wahsaga
12-04-2005, 13:38
eigenschaft selected (http://de.selfhtml.org/javascript/objekte/options.htm#selected) oder selectedIndex des select-feldes entsprechend setzen.

chrisphp
13-04-2005, 14:01
So, hab das jetzt geschafft (bin kein javascript-profi ;-) )
Allerdings gibts noch 1 Problem und zwar wenn ich händisch in das textfeld "rufnummer" was eintippe und dann irgendwo ausserhalb des textfeldes klicke ist das eingegebene sofort wieder weg ?! keinen plan wieso und warum.

Deshalb hier mal der Code:

<script language="Javascript">
function updateto()
{
var phonebook = eval('document.sms.phonebook.options
[document.sms.phonebook.selectedIndex].value')
var arr_phonebook = phonebook.split(',');
if(arr_phonebook[0] != '' && arr_phonebook[1] != '')
{
document.sms.rufnummer.value = arr_phonebook[1];
document.sms.vorwahl.value = arr_phonebook[0];
}
document.sms.phonebook.selectedIndex = 0;
}
</script>


Edit: tippfehler korrigiert

wahsaga
13-04-2005, 14:06
Original geschrieben von chrisphp
So, hab das jetzt geschafft
was will den das eval() da?
schmeiß es raus, absolut überflüssig.

Allerdings gibts noch 1 Problem und zwar wenn ich händisch in das textfeld "rufnummer" was eintippe und dann irgendwo ausserhalb des textfeldes klicke ist das eingegebene sofort wieder weg ?! keinen plan wieso und warum.
fatal error: run out of kaffeesatz

chrisphp
13-04-2005, 14:13
Original geschrieben von wahsaga

fatal error: run out of kaffeesatz

Hm... problem is trotz eval() weglassen nicht gelöst.

wahsaga
13-04-2005, 14:40
Original geschrieben von chrisphp
Hm... problem is trotz eval() weglassen nicht gelöst.
boah, echt nich'?
na sowas.
könnte das vielleicht daran liegen, dass du einen wink mit dem zaunpfahl nicht mal dann erkennst, wenn man dir das teil über die birne zieht ...?


klartext: ohne dass du ein paar mehr informationen preis gibst, was du da (falsch) machst, kann man dir wohl kaum helfen.
ich frage mich nur, was daran immer so schwer zu kapieren ist?

chrisphp
13-04-2005, 14:50
Liegt wohl daran das ich schon seit 2 wochen tag und nacht php durchprogrammiere, sorry.

hier also

Hier die Liste aus welcher man den Eintrag wählt der dann auf die Felder vorwahl und rufnummer übertragen wird

<select name="phonebook" id="phonebook" onChange="javascript: updateto()">
<option value="0,0">Telefonbuch...</option>
<option value .... diverse Abfragen aus Datenbank ..... </option>
</select>


Hier das Feld vorwahl
<select name="vorwahl" id="vorwahl" OnChange="javascript:document.sms.vorwahl.value='';">
<?php
if($errorstatus>='0' & $vorwahl!='0') { ?>
<option value="<?php echo $vorwahl; ?>">+<?php echo $vorwahl; ?></option>
<?php }
$ergebnis = mysql_query('SELECT id, bezeichnung, nummer FROM sms_vorwahlen ORDER BY id');
while ($row = mysql_fetch_array($ergebnis)) {
?>
<option value="<?php echo $row[id]?>"><?php echo $row[bezeichnung]; ?></option>
<?php } ?>
</select>

Und schlussendlich noch das Textfeld rufnummer

<input name="rufnummer" type="text" id="rufnummer" size="20" OnChange="javascript:document.sms.rufnummer.value='';">

wahsaga
13-04-2005, 15:25
Original geschrieben von chrisphp
Und schlussendlich noch das Textfeld rufnummer

<input name="rufnummer" type="text" id="rufnummer" size="20" OnChange="javascript:document.sms.rufnummer.value='';">

aha.

also ist das verhalten, welche du vorher als "problem" beschrieben hast -
Allerdings gibts noch 1 Problem und zwar wenn ich händisch in das textfeld "rufnummer" was eintippe und dann irgendwo ausserhalb des textfeldes klicke ist das eingegebene sofort wieder weg ?!
- doch genau das, was du vom browser gewünscht hast:

>> wenn der inhalt des textfeldes geändert wurde, setze den inhalt des textfeldes auf '' (leerstring). <<

works as designed.


keinen plan wieso und warum.
ja, das scheint mir allerdings auch so ...

wenn du nicht weißt, was das, was du dem browser sagst, bewirkt - dann dafst du dich wohl kaum wundern, wenn es auch nicht das ergibt, was du wolltest.


und btw: lass das javascript: aus eventhandlern raus, es hat da nichts verloren.

chrisphp
13-04-2005, 15:33
Ok, danke für die Erklärung.
Ich hab vor 2 Jahren mal intensiv PHP programmiert. Doch wenn man mal lange Zeit nichts macht befindet man sich wieder auf Neuland ;-)
Sorry das ich deine Zeit "verschwendet" habe.

Edit: ja ich weiß das es hier nicht um PHP geht ;-)

--

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:34 Uhr.