# Javascript funktion wird nicht ausgeführt



## atlantyz (23. November 2010)

Hallo Leute,

ich brauche mal wieder eure Hilfe. Leider weiß ich diesmal nicht so genau, wo mein Thema hingehört: eher PHP oder eher Javascript Forum. Ich denke aber, dass es eher hier hin gehört (ansonsten bitte verschieben).

Mein Problem:

ich gebe in ein Input- Feld etwas ein und ein neues Fenster (in dem Fall wird einfach ein gelber Kasten geöffnet) öffnet sich, in dem ich aus einer Tabelle Kunden wählen kann, die dann automatisch in das Input- Feld übernommen werden sollen.

Die Daten der Tabelle werden aus einer Datenbank mittels PHP gezogen, markieren kann man die Kunden mittels Radio- Button, der einen Value besitzt, der die Kunden ID hat. Nun möchte ich beim klicken die Kunden ID (also den Value des Button) in ein verstecktes Input Feld schreiben, damit dieses dann bei einem Submit mitgesendet wird.

Beim ersten Aufruf des Fensters möchte ich, dass der Value des ersten Eintrages (der automatisch markiert ist), in das versteckte Input- Feld geschrieben wird. Mit einem onclick geht das nicht, da ich ja beim ersten Mal nicht klicke. Also habe ich mir folgendes gedacht: ich rufe die Funktion einfach 1 Mal ohne Event auf.

Das sieht dann in etwa so aus:


```
while ($kunde = mysql_fetch_assoc($erg))
{
	$farbe = hintergrund();
   echo "<tr bgcolor = '" . $farbe . "'>\n";
   echo " <td>\n";
   if ($z == 1)
   {
   echo "<script language = 'JavaScript'>";           //hier wird die Funktion aufgerufen, um die es geht!
   echo "nrinfeld(\"".$kunde["kunde_id"]."\");";
   echo "</script>";
   echo "  <input type = 'radio' name = 'kundenauswahl' value = '" . $kunde["kunde_id"] . "' onclick = 'nrinfeld(\"".$kunde["kunde_id"]."\")' checked>\n";
   }
   else {
   echo "  <input type = 'radio' name = 'kundenauswahl' value = '" . $kunde["kunde_id"] . "' onclick = 'nrinfeld(\"".$kunde["kunde_id"]."\")' >\n";
   }	
   echo " </td>\n";
   echo " <td>\n";
   echo "  " . $kunde["tel"] . "\n";
   echo " </td>\n";
echo " <td>\n";
      db_connect_intranet_alt();
   $geraet_suche = "select g_name from geraet where g_id = '" . $kunde["pc"] . "'";
   $ergg = mysql_query($geraet_suche);
   $geraet = @mysql_result($ergg,0,"g_name");
   echo "<b>  " . $geraet . "</b>\n";
   echo " </td>\n";
if($kunde["pc"] == '0'){
      $kunde["pc"] = '';
   }
   echo "<td>".$kunde["pc"]."</td>";
      echo " <td>\n";
   echo "  " . $kunde["name"] . "\n";
   echo " </td>\n"; 
      echo " <td>\n";
   echo "  " . $kunde["vorname"] . "\n";
   echo " </td>\n";
   echo " <td>\n";
   echo "  " . $kunde["standort"] . "\n";
   echo " </td>\n";

   echo "</tr>\n";
   $z = $z + 1;
}
```

(Habe jetzt nur mal die Schleife hier gepostet, der restliche Quelltext sollte eig. nichts mehr damit zu tun haben.)

Die Funktion liegt in der Datei lib_ticket.js und wird auch eingebunden (beim onclick- Event wird die Funktion auch ausgeführt). Hier die Funktion:


```
function nrinfeld(nr)
{
document.getElementsByName('kundenr')[0].value = nr;	
}
```

Ich bekomme keine Fehlermeldung im Firefox und schaue ich mir die Fehlerbehandlung mit Firebug an, so wird die Funktion auch angezeigt, ich weiß nur nicht, warum er das Feld nicht mit dem übergebenen Wert füllt.

Habe ich vielleicht beim einbinden etwas falsch gemacht?

Anmerkung:

hier noch mal der code aus Sicht von html:


```
<tr bgcolor = '#F0F0F0'>
 <td>
<script language = 'JavaScript'>nrinfeld("27");</script>  <input type = 'radio' name = 'kundenauswahl' value = '27' onclick = 'nrinfeld("27")' checked>
 </td>
 <td>
  1132
 </td>
```


----------



## atlantyz (23. November 2010)

Ich weiß glaub ich mittlerweile, warum der Code nicht ausgeführt wird. Da mein "Fenster" in eine bestehende Datei nachgeladen wird, kann man dort kein JS mehr verwenden, was natürlich dumm ist, denn wenn ich meine Funktion ohne Event aufrufen will, muss ich es ja in ein Script- Tag schreiben, was aber dann ignoriert wird.

Ich denke, es wird wohl nicht so einfach den Wert des Radio- Buttons in das Input- Feld zu bekommen....


----------



## Quaese (24. November 2010)

Hi,

du schreibst, das "Fenster" wird geöffnet, wenn in ein input-Feld etwas geschrieben wird.

In einem solchen Fall könntest du anhand einer globalen Variable prüfen, ob das Fenster das erste Mal geöffnet wird. Wurde es noch nicht geöffnet, führst du die Funktion aus, die den Standardwert ins Feld schreibt und setzt die Variable derart, dass sie anzeigt, dass das Fenster bereits geöffnet war.

Ciao
Quaese


----------



## atlantyz (24. November 2010)

die Variable existiert aber erst nach dem "öffnen" des Fensters und dem nachladen der php- Datei, da erst dann mittels PHP der Wert aus der Datenbank gezogen wird. Ich kann die funktion also erst ausführen, wenn ich die Variable kenne, also nach dem öffnen des Fensters und dem nachladen der Datei.


----------

