El torito: Variabel ist nicht definiert.

Hallo, habe folgendes Problem:
1. kann ich JavaScipt nicht gut
2. ich habe ein Probelm mit Javascript:

wie ihr unten sehen könnt, ist dort ein Listenfeld welches die Daten aus eine DB bezieht. Wenn man dan ein Kategorie (Wert) ausgesucht hat, sollen im 2. listenfeld die Unterkategorien erscheinen. Das würde auch funktionieren theoretisch, aber im Header ist irgendwo der Hund versteckt bei der Variabel von Javascript, weil die variabel $name undefined ist. (das steht dan in der URL), logischerweise kann dan auch nicht die untermenüs aus der db ausgelesen werden. Ich hoffe es kann mir jemand helfen.

<html>

<head>
    <SCRIPT language=JavaScript>
    function reload(form){
        var val=form.name.value;
        self.location='test.php?name=' + val;
    }
    </script>
</head>

<?
$verbindung = mysql_connect("localhost","root","");
mysql_select_db("test",$verbindung);

$sql = "SELECT * FROM kategorie";
    $result = mysql_query($sql) or die (mysql_error());
    echo "<form method=post action=test.php>";

echo "<select name='kategorie' onchange="reload(this.form)">\n<option value=''>Bitte waehlen</option>\n";
    while($kategorie=mysql_fetch_array($result)){
            echo "<option value='" .$kategorie[id] . "' selected>" . $kategorie[kategorie_name] . "</option>\n";
}
echo "</select>";
    echo "</form>";

if($name){
        $sql2="SELECT * FROM unterkategorie WHERE kategorie_id=1";
        //" . $name . ";
      $result2=mysql_query($sql2) or die (mysql_error());
        echo "<select name'unterkategorie'>";
              echo "<option> Bitte waehlen</option>";
             while($unterkategorie=mysql_fetch_array($result2)){
            echo "<option value='" .$row[id] . "' selected>" . $unterkategorie[unterkategorie_name] . "</option>\n";

}
        echo "</select>";
        }

?>

</html>

  1. Hi,

    Hallo, habe folgendes Problem:

    1. kann ich JavaScipt nicht gut
    2. ich habe ein Probelm mit Javascript:

    wie ihr unten sehen könnt, ist dort ein Listenfeld welches die Daten aus eine DB bezieht.

    Du hast ein Javascript-Problem, kein PHP-Problem. Also ein browserseitiges Problem.
    Woher irgendwelche Daten auf dem Server zusammengesucht werden, ist für den Browser vollkommen irrelevant, der kriegt das ja nicht mit.

    Also zeige bitte den relevanten Ausschnitt des Quelltexts, der im Browser ankommt, nicht denr, der dem PHP-Interpreter übergeben wird.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    Schreinerei Waechter
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. Hallo,
      Gerne liefere ich denn Quellcode noch nach

      <html>

      <head>
          <SCRIPT language=JavaScript>
          function reload(form){
              var val=form.name.value;
              self.location='test.php?name=' + val;
          }
          </script>
      </head>

      <form method=post action=test.php><select name='kategorie' onchange="reload(this.form)">
      <option value=''>Bitte waehlen</option>
      <option value='' selected>Drucker</option>
      <option value='' selected>Novell</option>
      <option value='' selected>PC</option>

      <option value='' selected>Monitor</option>
      <option value='' selected>Windows</option>
      <option value='' selected>Office</option>
      <option value='' selected>Spital Software</option>
      <option value='' selected>Spezial Software</option>
      </select></form><select name'unterkategorie'><option> Bitte waehlen</option><option value='' selected>Hardware</option>
      <option value='' selected>Software</option>
      <option value='' selected>anderes</option>

      </select>
      </html>

      Hi,

      Hallo, habe folgendes Problem:

      1. kann ich JavaScipt nicht gut
      2. ich habe ein Probelm mit Javascript:

      wie ihr unten sehen könnt, ist dort ein Listenfeld welches die Daten aus eine DB bezieht.

      Du hast ein Javascript-Problem, kein PHP-Problem. Also ein browserseitiges Problem.
      Woher irgendwelche Daten auf dem Server zusammengesucht werden, ist für den Browser vollkommen irrelevant, der kriegt das ja nicht mit.

      Also zeige bitte den relevanten Ausschnitt des Quelltexts, der im Browser ankommt, nicht denr, der dem PHP-Interpreter übergeben wird.

      cu,
      Andreas

      1. Hi,

        Gerne liefere ich denn Quellcode noch nach

        Das ist doch gleich viel übersichtlicher.

        <SCRIPT language=JavaScript>
            function reload(form){
                var val=form.name.value;

        <form method=post action=test.php><select name='kategorie' onchange="reload(this.form)">

        Du fragst hier das (nicht-gesetzte) name-Attribut des Form-Elements nach einer (da es sich um einen String handelt) nicht vorhandenen Eigenschaft value.
        Dein select-Element hat den Namen 'kategorie', nicht 'name'.

        Außerdem hat ein select-Element keine value-Eigenschaft, frage über options und selectedIndex das ausgewählte option-Element nach dessen value.

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        Schreinerei Waechter
        Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
        1. hi,

          Außerdem hat ein select-Element keine value-Eigenschaft, frage über options und selectedIndex das ausgewählte option-Element nach dessen value.

          doch, select hat im DOM durchaus ein value - und zwar schon im DOM Level 1. was der firefox auch unterstützt, der IE ist allerdings mal wieder "noch" nicht so weit.

          gruß,
          wahsaga

          --
          /voodoo.css:
          #GeorgeWBush { position:absolute; bottom:-6ft; }
      2. <html>

        <head>
            <SCRIPT language=JavaScript>

        Da fehlt das Type Attribut, das language Attribut ist relativ überflüssig, es sei denn dir liegt noch viel an 3'er Browsern

        var val=form.name.value;

        Das heißt es gibt in dem Formular ein Feld mit dem Namen 'name'?
        Du solltest Namen vermeiden die mit Attrributen kolidieren.

        self.location='test.php?name=' + val;

        Was immer rauskommen kann bei val, du solltest URL Parameter immer kodieren
        http://de.selfhtml.org/javascript/objekte/unabhaengig.htm#escape
        oder http://de.selfhtml.org/javascript/objekte/unabhaengig.htm#encode_uri

        <form method=post action=test.php><select name='kategorie' onchange="reload(this.form)">

        HTML Attribute müssen mit Anführungszeichen umschlossen werden (ausser Zahlen)

        <option value=''>Bitte waehlen</option>
        <option value='' selected>Drucker</option>
        <option value='' selected>Novell</option>
        <option value='' selected>PC</option>

        Alle Options haben keine Werte?

        Struppi.