TrikiDino: Script wird (scheinbar?) nicht ausgeführt

Hallo,
ich habe in einem Formular ein select-Feld, in dem ich ein Kürzel für die Warengruppe hinterlegen will. Paralell dazu soll die Bezeichnung der Warengruppe angezeigt werden. Dementsprechend soll sich natürlich die angezeigte Bezeichnung bei Änderung des Kürzels mitändern.

Dies ist der Code, der das select-Feld bildet:

  
<select name="Warengruppe" size="1" id="warengruppe" style="width:7em;" onblur="fct_ZeigeWG()" onchange="fct_ZeigeWG()" />  
      [code lang=php]<?php  
			$query_infotab = "SELECT KUerzel, Text FROM infotab WHERE Art=8 ORDER BY Text ASC";  
			$infotab = mysql_query($query_infotab, $FakturaSimplisicimus) or die(mysql_error());  
			while ($row_infotab = mysql_fetch_assoc($infotab))  
			{ ?>

<option <?php if ($row_artikelstamm['Warengruppe'] == $row_infotab['KUerzel']) { ?>selected="selected"<?php } ?>
      value="<?php echo $row_infotab['KUerzel']; ?>"><?php echo $row_infotab['KUerzel']." - " .$row_infotab['Text']; ?></option>
      <?php } ?>
      </select>
      ~~~php <?php
  $infotab = mysql_query($query_infotab, $FakturaSimplisicimus) or die(mysql_error());
  while ($row_infotab = mysql_fetch_assoc($infotab))
{ ?>

      <div id="`<?php echo $row_infotab['KUerzel']; ?>`{:.language-php}" style="display:none">  
      <input name="WGText" type="text" id="WGText" value="`<?php echo $row_infotab['Text']; ?>`{:.language-php}" size="35" readonly="readonly" /></div>`<?php } ?>`{:.language-php}  
[/code]  
  
Das ich die js-Funktion fct\_ZeigeWG onBlur und onChange aufrufe, war schon eine Verzweiflungstat, um sicher zu gehen, das sie aufgerufen wird, irgendwie und irgendwann. Zuerst hatte ich nur onChange angegeben.  
Der php-code wird auch rictig ausgeführt - jedenfalls sieht der entstandene Quelltext so aus, wie ich es erwartet habe.  
  
Die Funktion selbst sieht so aus:  
~~~javascript
  
function fct_ZeigeWG()  
{  
	alert (getElementById("warengruppe").value);  
	getElementsByName("WGText").style.display=none;  
	getElementById(getElementById("warengruppe").value).style.display=inline;  
}  

Wobei das alert nur dazu dienen soll, zu testen, ob die Funktion überhaupt angesprochen wird - es erscheint KEIN Meldungsfenster. Setze ich jedoch eine Zeile
alert "Test";
ein, wird dieses auch ausgegeben.

Ich habe einfach keinen blassen Schimmer mehr, wo ich den Bock geschossen habe.

In Hoffnung auf Hilfe
TrikiDino

P.S.
Ich hoffe ich habe alle Formatierungen und Code-Kennzeichner richtig gesetzt.

P.P.S.
Wenn es hilft kann nicht natürlich auch den generierten Code posten.

  1. @@TrikiDino:

    nuqneH

    getElementsByName("WGText").style.display=none;

    getElementsByName() sollte unbekannt sein. Das hätte dir deine Fehlerkonsole auch gesagt. Sollen wir für dich debuggen?

    Das http://de.selfhtml.org/javascript/objekte/document.htm@title='document'-Objekt hat eine solche Methode.

    Welchen Wert hat die Variable none?

    getElementById(getElementById("warengruppe").value).style.display=inline;

    Dito. Dito (Variable inline).

    Wenn es hilft kann nicht natürlich auch den generierten Code posten.

    Das hättest du gleich tun sollen. Wie sollte serverseitiger Code bei einem clientseiteigen Problem helfen?

    Qapla'

    --
    Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
    1. Hallo,

      getElementsByName() sollte unbekannt sein. Das hätte dir deine Fehlerkonsole auch gesagt. Sollen wir für dich debuggen?
      Das http://de.selfhtml.org/javascript/objekte/document.htm@title='document'-Objekt hat eine solche Methode.

      ja, aber sie liefert nicht *ein* node-Objekt, sondern ein ganzes Bündel davon - wobei die Anzahl der Objekte darin zufällig auch 1 sein könnte. Das ändert aber nichts daran, dass ich vor dem Zugriff erstmal das Bündel aufmachen (sprich: über einen Index auf die NodeList zugreifen) muss.

      Welchen Wert hat die Variable none?

      Oh. Fein beobachtet. Das war mir nicht aufgefallen.

      Ciao,
       Martin

      --
      Liebet eure Feinde - vielleicht schadet das ihrem Ruf.
    2. @@TrikiDino:

      nuqneH

      getElementsByName("WGText").style.display=none;  
      

      getElementsByName() sollte unbekannt sein. Das hätte dir deine Fehlerkonsole auch gesagt. Sollen wir für dich debuggen?

      Nein, natürlich nicht - ich würde mit Sicherheit nicht hier eine Frage stellen und mich damit diesen "netten" Vermutungen aussetzen, wenn ich irgendeine Meldung der Fehlerkonsole erhalten hätte oder selbst noch irgendeine Idee gehabt hätte, wie das Problem zu lösen wäre.

      Das http://de.selfhtml.org/javascript/objekte/document.htm@title='document'-Objekt hat eine solche Methode.

      Welchen Wert hat die Variable none?

      Danke für diesen leicht verständlichen Hinweis, das die Anführungszeichen fehlen.

      getElementById(getElementById("warengruppe").value).style.display=inline;  
      

      Dito. Dito (Variable inline).

      dto

      Wenn es hilft kann nicht natürlich auch den generierten Code posten.

      Das hättest du gleich tun sollen. Wie sollte serverseitiger Code bei einem clientseiteigen Problem helfen?

      Da der Serverseitige Code den Clientseitigen Code erzeugt ?!?
      Aber ok - auch wenn ich euch das eigentlich ersparen wollte

        
      <select name="Warengruppe" size="1" id="warengruppe" style="width:7em;" onblur="fct_ZeigeWG()" onchange="fct_ZeigeWG()" />  
        
            <option  
            value="1000-inch">1000-inch - </option>  
            <option  
            value="1000-mm">1000-mm - </option>  
            <option  
            value="1000-t">1000-t - </option>  
            <option  
            value="1010">1010 - </option>  
            <option  
            value="1025">1025 - </option>  
            <option  
            value="105">105 - </option>  
      /****** weitere zig Warengruppen, bis zu ****/  
            <option  
            value="ny-300-9">ny-300-9 - </option>  
            <option  
            value="S">S - Sonderanfertigung</option>  
                  </select>  
                  <div id="1000-inch" name="WGText" style="display:none"></div>  
      	        <div id="1000-mm" name="WGText" style="display:none"></div>  
      	        <div id="1000-t" name="WGText" style="display:none"></div>  
      	        <div id="1010" name="WGText" style="display:none"></div>  
      	        <div id="1025" name="WGText" style="display:none"></div>  
        
      	        <div id="105" name="WGText" style="display:none"></div>  
      /****** weitere zig Warengruppen, bis zu ****/  
      	        <div id="ny-300-9" name="WGText" style="display:none"></div>  
      	        <div id="S" name="WGText" style="display:none">Sonderanfertigung</div>  
      
      

      Das bis auf die Warengruppe S=Sonderanfertigung keine eine Bezeichnung hat, ist leider in der bestehenden Testdatenbank so. Natürlich habe ich darauf geachtet, das ich zur Prüfung der Ausgabe der Bezeichnung auch die Warengruppe "Sonderanfertigung" gewählt habe.

      Qapla'

      1. <div id="1000-inch" name="WGText" style="display:none"></div>

        Muss eine id-Bezeichnung nicht mit einem Buchstaben oder Unterstrich anfangen?

        1. @@Kalle_B:

          nuqneH

          <div id="1000-inch" name="WGText" style="display:none"></div>

          Muss eine id-Bezeichnung nicht mit einem Buchstaben oder Unterstrich anfangen?

          Muss man darauf nun ja oder nein antworten? ;-)

          Qapla'

          --
          Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
          1. Muss eine id-Bezeichnung nicht mit einem Buchstaben oder Unterstrich anfangen?

            Muss man darauf nun ja oder nein antworten? ;-)

            Blondinen: "Vielleicht", "selten", "manchmal", "öfters", ...

            Ausserhalb der digitalen Welt gibt es soo viele Möglichkeiten ;-)

            Kalle

      2. @@TrikDino:

        nuqneH

        <div id="1000-inch" name="WGText" style="display:none"></div>

        'div' darf kein @name haben.

        Außerdem passt das nicht zu deinem PHP-Quelltext. Sammel dich erstmal; auf Rätselraten hab ich keine Lust.

        Qapla'

        --
        Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
      3. Hi,

        Wie sollte serverseitiger Code bei einem clientseiteigen Problem helfen?
        Da der Serverseitige Code den Clientseitigen Code erzeugt ?!?

        Warum sollte es den Client interessieren, wer den Code, den er erhält, erzeugt hat und wie?

        MfG ChrisB

        --
        “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
  2. Hallo,

    ich habe in einem Formular ein select-Feld, ... Paralell dazu soll die Bezeichnung der Warengruppe angezeigt werden.

    Das ich die js-Funktion fct_ZeigeWG onBlur und onChange aufrufe, war schon eine Verzweiflungstat,

    und führt nicht zum Ziel, weil in beiden Fällen die Verarbeitung erst _nach_ Verlassen des Feldes startet. Dein Freund wäre onKeyup oder onMouse(irgendwas)

    Wobei das alert nur dazu dienen soll, zu testen, ob die Funktion überhaupt angesprochen wird - es erscheint KEIN Meldungsfenster.

    alert poppt nicht auf, wenn es nichts zu alerten gibt, das Argument könnte also leer sein. Gib eine Klammer mit aus, damit alert auch alertet.

    alert( "[" +text +"]" );

    So kann man leere Variablen erkennen, natürlich auch in PHP mit echo.

    Ich habe einfach keinen blassen Schimmer mehr, wo ich den Bock geschossen habe.

    Naja, hier lauern auch noch Böcke:

    getElementsByName("WGText").style.display=none;

    Ich schenke dir ein "document." und ein "[0]" zur Reparatur. ...ByName ist ein Array, du musst die einzelnen Elemente ansprechen.

    getElementById(getElementById("warengruppe").value).style.display=inline;

    Auch hier fehlt zumindest "document." zweimal.

    Kalle