Javascript funktioniert nur im Firefox nicht jedoch im IE 8 ?!

  • #1
V

vbscript_einsteiger

Mitglied
Themenersteller
Dabei seit
11.01.2008
Beiträge
12
Reaktionspunkte
0
Hallo zusammen,

Ich habe eine ganz normale html-seite auf der ich ein Javascript verwenden möchte.
Habe das ganze mal so geschrieben wie ich es mir vorstelle und im Firefox funktioniert es auch tadellos.
Im IE 8 allerdings nicht, da anscheinend eine Variable des Scripts nicht definiert ist?! So zumindest lautet die Ausgabe im IE 8.

Hier mal mein Code:
Code:
<html>
<head>
<title>onclick-event</title>
</head>
<body>

<form action= method= name=formulartest>
<input type=text name=ausgabe>
<select name=test size=10 onclick=WertUebertragen(document.formulartest.test.value);>
<option>Eintrag Nummer 1</option>
<option>Eintrag Nummer 2</option>
<option>Eintrag Nummer 3</option>
<option>Eintrag Nummer 4</option>
<option>Eintrag Nummer 5</option>
</select>
</form>

<script type=text/javascript>

function WertUebertragen (Wert) {

var Woerter = Wert.split( );

document.forms.formulartest.ausgabe.value = Woerter[2];

}

</script>
</body>
</html>

Ich wäre euch dankbar für jede Hilfe und jeden Hinweis, da mir Google leider keine Lösung gebracht hat.

Danke und Gruß
vbscript_einsteiger
 
  • #2
Code:
<head>
<title>onchange-event</title>
</head>
<body>

<form action= method= name=formulartest>
<input type=text name=ausgabe>
<select name=test size=10 onchange=WertUebertragen( this );>
<option value=1>Eintrag Nummer 1</option>
<option value=2>Eintrag Nummer 2</option>
<option value=3>Eintrag Nummer 3</option>
<option value=4>Eintrag Nummer 4</option>
<option value=5>Eintrag Nummer 5</option>
</select>
</form>

<script type=text/javascript>

function WertUebertragen ( obj ) {
	document.forms.formulartest.ausgabe.value = obj.options[obj.selectedIndex].value;
}

</script>
</body>
</html>
 
  • #3
Hallo Conny,

danke für die schnelle Antwort. Deine Lösung funktioniert super, solange es sich um die Zahlen Handelt die ausgegeben werden sollen. Wenn ich aber das erste oder zweite Wort ausgeben möchte kann ich diese Methode so nicht mehr anwenden oder??

Mein Problem ist, dass ich die select-liste eigentlich dynamisch mit php erzeuge und einen bestimmten Wert (Vorname in Textfeld Vorname, Nachname in Textfeld Nachname und Nummer in Textfeld Nummer) bei klicken übertragen möchte.

Der gepostete Code ist nur ein Prototyp. Normalerweise stehen in der select-liste nacheinander durch Leerzeichen getrennt ID Nachname Vorname Rufnummer. Ein Zeile in der Liste könnte also so aussehen.

01 Musterman Max 098765 - 999
02 Müller Hans 87654 - 888
etc...

Hier mal ein Ausschnitt des Codes im richtigen Formulars:

Code:
<?php 
include (checkuser.php); 
?>
<html>
<head>
<title> Telefonbuch </title>
<link rel=stylesheet type=text/css href=layout/style.css>

<script type=text/javascript>

function WertUebertragen (Wert) {

var Woerter = Wert.split( );

document.Eintragsliste.Name.value = Woerter[1];
document.Eintragsliste.Vorname.value = Woerter[2];
document.Eintragsliste.Nummer.value = Woerter[3] +   + Woerter[4] +   + Woerter[5];

}

</script>


</head>
<body>

<p> &nbsp </p>
<h3> Telefonbuch - Eintrag ändern </h3>
<h4>Liste aller Einträge</h4>

<div align=center>				
<form method=post action=VerarbeitungEintraegeAendern.php name=Eintragsliste>
<select name=Eintrag size=10 onclick=WertUebertragen(this.form.Eintrag.value)>

<?php 
$mysqlhost=localhost; // MySQL-Host
$mysqluser=xxx; // MySQL-User 
$mysqlpwd=xxx; //Passwort
$mysqldb=Telefonbuch; // Gewuenschte Datenbank

$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die (Verbindungsversuch fehlgeschlagen);
mysql_select_db($mysqldb, $connection) or die(Konnte die Datenbank nicht waehlen.);
$sql = SELECT * FROM Telefonbuch.adressen ORDER BY Name;
$adressen_query = mysql_query($sql) or die(Anfrage nicht erfolgreich);



while ($adr = mysql_fetch_array($adressen_query)){


if (strlen($adr['ID']) > 1) {

echo <option>.$adr['ID']. .$adr['Name']. .$adr['Vorname']. .$adr['Nummer'].</option>; }

else {

echo <option>0.$adr['ID']. .$adr['Name']. .$adr['Vorname']. .$adr['Nummer'].</option>;

} }

?>

</select>
<p>Name: <input type=text name=Name>
  Vorname: <input type=text name=Vorname>
  Rufnummer: <input type=text name=Nummer></p>
<p><input type=submit name=aendern value=Ändern></p>
</form>
<p><a href=logout.php>Ausloggen</a> | <a href=TelefonbuchVerwalten.php>Zurück zur Verwaltung</a></p>
</div>

Wie gesagt im Firefox funktioniert es so. Nur im IE 8 steht dann in den Textfeldern undefined.
Es hat den anschein als würde mit der Variable/Array Woerter etwas nicht stimmen nur weiß ich leider nicht was bzw. wie ich es ändern kann.

Danke für eure Hilfe

Grüße
vbscript_einsteiger
 
  • #4
Auch das ist machbar ;)

<head>
<title>onchange-event</title>
</head>
<body>

<form action= method= name=formulartest>
<input type=text name=ausgabe />
<select name=test size=10 onChange=WertUebertragen( this );>
<option>Micki Maus 1</option>
<option>Dagobert Duck 2</option>
<option>Gustaf Gans 3</option>
<option>Donald Duck 4</option>
<option>Mini Maus 5</option>
</select>
</form>

<script type=text/javascript>

function WertUebertragen ( obj ) {
var Woerter = obj.options[obj.selectedIndex].text.split( )
document.forms.formulartest.ausgabe.value = Woerter[0] + + Woerter[1];
}

</script>
</body>
</html>

=>
 
  • #5
So funktionierts. :)
SUPER! Danke für die schnelle Hilfe :1

Mich würde trotzdem interessieren warum der IE nicht mit Variable = Variable.split( ) klar kommt.

DANKE DANKE DANKE du hast mir wirklich sehr geholfen!

Grüße
vbscript_einsteiger
 
  • #6
split kann der IE schon, man sieht es ja ;)

Der Knasus-Faktus ist ganz einfach der, der IE weiß nicht was er splitten soll da er die gewählte Option nicht findet.

So findet er sie => obj.options[obj.selectedIndex].text oder obj.options[obj.selectedIndex].value


Edit:

Ich pers. arbeite lieber mit onchange da das onclick-Event manchmal zu merkwürdigen/ungewollten Ergebnissen führt ;)

z.B. in deinem Beispiel ist in der Select-Box nach den 5 Einträgen noch Leerraum übrig (ok, wird wohl später nicht sein), würdest du nun in diesen Leerraum klicken, hättest du schon das onClick-Event ausgelöst ;)

Gefahr erkannt, Gefahr gebannt :2funny:
 
Thema:

Javascript funktioniert nur im Firefox nicht jedoch im IE 8 ?!

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben