Markus: submit( )

hallo zusammen,
gleiche vorne weg, ich nicht besonders firm in Javascript ...
ich hab da ein kleines problem, und weiß im Moment nicht wo der fehler liegt:
hab eine *.php mit einem formular namens "main" und einer selectbox:

echo "<select NAME='location_sel' SIZE='$size' onchange='document.main.submit()'>\n";

mit dem onchange-Ereignis will ich nun das absenden des Formulars erzwingen, falls ein neuer eintrag in der box selektiert wird.
mir wird hier allerdings ein javascript-fehler gemeldet...
leider kann ich aufgrund meiner fehlenden rechte die scriptfehler nicht anzeigen lassen.

hat jemand da vielleicht ne idee ?!
vielen dank für Eure hilfe.

mfG,
    Markus.

  1. hi,

    echo "<select NAME='location_sel' SIZE='$size' onchange='document.main.submit()'>\n";

    mit dem onchange-Ereignis will ich nun das absenden des Formulars erzwingen, falls ein neuer eintrag in der box selektiert wird.
    mir wird hier allerdings ein javascript-fehler gemeldet...
    leider kann ich aufgrund meiner fehlenden rechte die scriptfehler nicht anzeigen lassen.

    und du glaubst wir hätten mehr 'rechte' als du in dieser hinsicht?
    btw: was können einem für rechte fehlen, um z.b. im IE unten in der statuszeile auf das fehlericon zu klicken...?

    document.main.submit();

    heisst den formular auch wirklich "main"?

    gruss,
    wahsaga

    1. hey,

      und du glaubst wir hätten mehr 'rechte' als du in dieser hinsicht?
      btw: was können einem für rechte fehlen, um z.b. im IE unten in der statuszeile auf das fehlericon zu klicken...?

      unter extras -> internetoptionen -> erweitert kann man sich bekanntlicherweise mittels einer checkbox scriptfehler anzeigen lassen, welche Dir eine detailliertere auskunft über den fehler geben. diese checkbox kannst Du scheinbar aber nur mit adminrechten selektieren, welche ich leider nicht zur verfügung habe ...

      heisst den formular auch wirklich "main"?

      ja, aber trotzdem danke...

  2. Moin, moin!

    Muß es nicht onChange (mit einem großen "C") heißen?

    Norbert

    1. habs ausprobiert, funktioniert aber auch nicht ...

      mfG,
          Markus.

  3. Moin!

    echo "<select NAME='location_sel' SIZE='$size' onchange='submit()'>\n";

    Wenn es jetzt noch nicht geht, dann hätte ich gern das ganze Formular.

    Falls Du für die Firma entwickelst wäre eine gute Idee den Admin darauf hinzuweisen, daß Du notwendigerweise bestimmte Optionen benötigst.

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix®

    --
    Meinereinerselbst ist auf der Suche nach Aufträgen
    1. vielen zuerst mal für Deine Mühe ...
      leider funktioniert dies auch noch nicht ...

      ich gib Die jetz mal mein Formular:

      --------------------------------------------------
      echo "<form name='reporter' action='report.php' method='get'>
        <table class=bg0border align=center>
          <tr align='left'>
            <th>Location</th>

      <th>Project</th>

      <th>Month</th>
            <th>Year</th>
            <th>processed by</th>
            <th>Options</th>
         <th></th>
         <th></th>
          </tr>
          <tr>"; #1.Zeile
       // Standort-Auswahl
        $ssql = "select loc_name, location_id from location";
        $sel_loc = "";
        if ($sel_loc!="") { $ssql .= " where location_id ='$sel_loc' order by location_id"; }
        else              { $ssql .= " order by location_id"; };
        echo "<td>"; #1.Spalte
        #create_select("location", $conn, $ssql, $location);

      echo "<select NAME='location' SIZE='$size' onchange='document.reporter.submit()'>\n";
        #echo "<select NAME='location' SIZE='$size' >\n";
       $result = pg_exec ($conn, $ssql);
       $num = pg_numrows($result);
       for ($i=0; $i < $num; $i++) {
        $r = pg_fetch_row($result, $i);
        if ($i==0) { if ($location=="")  { $location=$r[1]; } }
        if ($r[1]==$location) {
          echo "<option selected value='$r[1]'>$r[0]</option>\n";
        }
       else {
          echo "<option value='$r[1]'>$r[0]</option>\n";
        }
       }
      echo "</select></td>\n";

      #Projekt-Auswahl:
        $ssql  = "select name,project_nr from projects where locationid = '" . $location_sel . "' or locationid = NULL";
       echo "<td><select NAME='project'>\n";
       echo "<option selected value='all'>All Projects</option>\n";
       $result = pg_exec ($conn, $ssql);
       $num = pg_numrows($result);
       for ($i=0; $i < $num; $i++)
       {
        $r = pg_fetch_row($result, $i);
        if ($r[1]==$project_sel)
        {
         echo "<option selected value='$r[1]'>$r[0]</option>\n";
        }
       else {
          echo "<option value='$r[1]'>$r[0]</option>\n";
        }
      }
      echo "</select></td>";

      // Datum Monat
        $actual_month = date("n");
       echo "<td><select name='month' size=1>\n";
       if (isset($month)) {
        $actual_month = $month;
       }

      #Monate anhaengen:
       for ($i=1; $i<=12; $i++) {
         if ($actual_month==$i) { $selected="selected"; } else { $selected=""; }
         echo sprintf("<option $selected value='%02d'>%d</option>\n", $i, $i);
       }
       if ($actual_month=="all") { $selected="selected"; } else { $selected=""; }
       echo "<option $selected value='all'>All</option>\n";
       echo "</select></td>\n";

      // Datum Jahr
       $jahr = date("Y");
       echo "<td><select name='year' size=1>\n";
       for ($i=$jahr; $i>=$jahr-3; $i--) #zusätzlich letzten 3 Jahre anzeigen
       {
         if ($year==$i) { $selected="selected"; } else { $selected=""; }
         echo "<option $selected value='$i'>$i</option>\n";
       }
       echo "</select></td>\n";

      // Benutzerauswahl
        $ssql = "select name, id from projectusers";
        $sel_usr = "";
        if ($sel_usr!="") { $ssql .= " where id ='$sel_usr' order by name"; }
        else              { $ssql .= " order by name"; };
        echo "<td>";
        create_select("user", $conn, $ssql, $user);
       echo "</td>";
       echo "<td>";

      // Checkbox fuer Detailbeschreibung
       if ($cb_desc=="on") { $checkit = "checked='true'";}
       echo "<input type='checkbox' $checkit name='cb_desc' value='on'>Description";
       echo "</td><td>";

      // Checkbox fuer Summe
          if ($cb_sum=="on") { $checkit_sum = "checked='true'";}
          echo "<input type='checkbox' $checkit_sum name='cb_sum' value='on'>Sum";
          echo "</td><td>";

      // Submit Button
       echo "<input type='submit' name='submit' value="List" size=15>";

      echo "</td></tr>\n";
          echo "</form>\n";
          echo "</table>\n";
      --------------------------------------------------

      Danke schon mal...

      mfG,
         Markus.

      1. Moin!

        hm.

        Zunächst:

        http://fastix.dyndns.org/tests/send_onchange.html

        Da ist genau so ein Formular, mit genau so einer Auswahl- und es klappt, das siehst Du, wenn Du auf die URI schaust.
        Ich hab mir Deinen Quelltext mal angeschaut:

        Mach doch einfach folgendes:

        ?> <!-- Du musst hier kein php schreiben, dies ist statisch... //-->

        <form name="reporter" action="report.php" method="get">
          <table class="bg0border" align="center">
            <tr align='left'>
              <th>Location</th>
              <th>Project</th>
              <th>Month</th>
              <th>Year</th>
              <th>processed by</th>
              <th>Options</th>
              <th></th>
              <th></th>
            </tr>
            <tr>
             <td>
              <select NAME="location" SIZE="<?php echo $size ?>" onchange="submit()">\n";

        Jetzt kannst Du mit PHP die Options einbauen. Warum so? Ganz einfach: Jeden Mist via echo "" auszugeben verführt dazu auf Quotas zu verzichten und macht den HTML- Code unübersichtlich. Das führt zu Fehlern und invalidem HTML.

        In PHP ist das im Gegensatz zu Perl auch nicht nötig. Warum machst Du Dir den Streß statt PHP einzubetten? Auf die Performance hat das kaum positiven Einfluß.

        fastix®

        --
        Meinereinerselbst ist auf der Suche nach Aufträgen
      2. hi,

        echo "<select NAME='location' SIZE='$size' onchange='document.reporter.submit()'>\n";
          #echo "<select NAME='location' SIZE='$size' >\n";

        zwei select-tags ineinander verschachtelt sind auf keinen fall korrektes html.

        und du wunderst dich, dass die anwendung von javascript auf falschen html-code nicht funktioniert?
        soll ein browser _raten_, was du vorhast? (tut der IE meistens zu allem überfluss, leider...)

        lerne erst einmal html, danach kannst du versuchen durch anwenden von javascript dynamik reinzubringen. betonung liegt auf danach.

        gruss,
        wahsaga

        1. uuuuuuuuuuuuuuuuuuuuuupppppppppppppppppppppppppppssssssssssssssssss.

          auskommentierung übersehen.

          jaja schon gut, ich gehe jetzt erstmal php lernen :-)

          1. nochmal Glück gehabt ...