Markus: abschicken eines Formulars

hallo zusammen,

habe ein Formular in einer PHP-seite. zur lösung meines Problems ist darin eigentlich nur eine select-box entscheidend. falls ein neuer eintrag selektiert wird, wird das formular über die methode "submit()" abgeschickt und die PHP-Seite erneut aufgerufen ...

habe select-box und submit-button.

echo ("input type='submit' name='submitform' value='Enter Data'>");

formular wird über "submit()" durch auswählen eines eintrags in der select-box ausgewählt.

folgende abfrage schägt fehl :

if (isset($submitform)){...}

weiß jemand einen Grund dafür ?!?
vielen dank für Eure hilfe

  1. Hallo,

    was heißt schklägt fehl? Fehlermeldung oder ist isset nicht true?

    Beim zweiten ist wohl register_globals in deiner php.ini nicht angeschalten und du musst die variable erst explizit aus den übergebenen Parametern befüllen.

    http://www.php.net/manual/en/reserved.variables.php

    Dazu bei $_GET bzw. $_POST kucken und die Anmerkungen auf frühere PHP-Versionen beachten.

    Odium

    1. was heißt schklägt fehl? Fehlermeldung oder ist isset nicht true?

      -> bedeutet, ist false ...

      Beim zweiten ist wohl register_globals in deiner php.ini nicht angeschalten

      -> nö, ist an ...

      noch ne idee ?

      vielen dank für Deine hilfe.

      mfG,
          Markus.

      1. Hi

        wie wärs mit dem ganzen Code wenn er nicht zu lang ist!

        Ich seh nur kurz hier was: echo ("input type='submit' name='submitform' value='Enter Data'>");

        da musst du schon das input Feld auch öffnen mit einem "<"

        Gruß Christoph

        --
        Ich bin ein spezialisz!
        (Zitat von VENGA JO)
        sh:) fo:) rl:° br:& ie:| mo:) va:) fl:) ss:| ls:< js:|
        Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
        Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode
        1. da musst du schon das input Feld auch öffnen mit einem "<"

          leider ist der code schon sehr lang...
          und dem fehlenden "<" wollte ich den code wohle zu sehr komprimiert.
          ich glaub an dem liegts nicht.

          falls meine Beschreibung unverständlich war, oder noch fragen offen bleiben, könnte ich die source schon posten.

          mfG,
              Markus.

  2. ich versuchs mal mit der komprimierten quellttext-version:

    // Create Location Dropdown

    echo("<tr><td>Location</td><td>Project</td></tr><tr><td>");
    $ssql = "select loc_name, location_id from location order by loc_name";
    echo "<form name='main' action='" . $PHPSELF . "' method='get'>";
    echo("<input type='hidden' name='isubmit' value='1'>");
    if ($editid1) {
     echo("<input type='hidden' name='submitid' value='" . $editid1  . "'>");
     echo("<input type='hidden' name='editid1' value='" . $editid1  . "'>");
    }

    echo "<select NAME='location_sel' SIZE='$size' onchange='document.main.submit()'>\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_sel=="")  { $location_sel=$r[1]; } }
     if ($r[1]==$location_sel) {
       echo "<option selected value='$r[1]'>$r[0]</option>\n";
     }
     else {
       echo "<option value='$r[1]'>$r[0]</option>\n";
     }
    }
    echo "</select>\n";

    ....
    ....
    ....

    echo ("<input type='submit' name='submitform' value='Enter Data'>");

    ....
    ....
    ....

    formular abgeschickt mittels "submit()".
    folgende Abfrage liefert false:
    if (isset($submitform)){...}

  3. Hi,

    echo ("<input type='submit' name='submitform' value='Enter Data'>");
    formular wird über "submit()" durch auswählen eines eintrags in der select-box ausgewählt.

    folgende abfrage schägt fehl :
    if (isset($submitform)){...}

    Sie MUSS false ergeben.
    Beim Abschicken eines Formulars werden nur "erfolgreiche" Form-Elemente übermittelt.
    Also z.B. keine, die disabled sind, die keinen Namen haben.

    Ein Submit-Button ist aber nur dann "erfolgreich", wenn er auch betätigt wurde.
    Damit kann man bei mehreren Submit-Buttons unterscheiden, welcher von den Buttons betätigt wurde.

    Du schickst das Formular per Javascript ab.
    Dabei wird aber keiner der submit-Buttons betätigt.
    Folglich können diese nicht "erfolgreich" sein und werden damit auch nicht übermittelt.

    (siehe auch: http://www.w3.org/TR/html401/interact/forms.html#h-17.13)

    PS: das mit register_globals=on solltest Du besser ändern, Gründe: siehe Archiv...

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
    1. ah... danke für die hilfe und die erklärung !

      mfG,
          Markus.

    2. obwohl ich noch gerne wissen würde, wie das problem dann gelöst werden kann.
      wie kann ich abfragen, wie das Form abgeschickt wurde...

      mfG,
          Markus.

      1. Hi,

        obwohl ich noch gerne wissen würde, wie das problem dann gelöst werden kann.
        wie kann ich abfragen, wie das Form abgeschickt wurde...

        Weißt Du doch schon. Kommt einer der Submit-Buttons, wurde dieser benutzt.
        Kommt keiner, war es das Script.

        cu,
        Andreas

        --
        Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
        http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
        1. oh mann ... danke ... zu viel von dem zeug ist echt nicht gut ...
          schönen tag noch und nicht zu lange arbeiten bei dem wetter !

          mfG,
              Markus.