Lutz: Übergabe einer variable in PHP

Hallo,

ich habe dieses Problem schon mal in einem anderen Forum gepostet. ich komme einfach nicht weiter.
Weiss jemand was ich falsch mache warum wird meine Variable aus dem Texinput "was" nicht übergeben?

Ich poste mal den Code und bin über jede Hilfe Dankbar.

Gruß
Lutz

<form name="form1" method="post" action="<?php echo $PHP_SELF ?>">
  <table width="100%" border="0" cellpadding="0" cellspacing="2">
    <tr>
      <td class="schwarz12">
<input name="was" type="text" id="was" value="<?php echo $was ?>">
        <?php if (!$was) {?>
        <select name="hw" id="hw" onChange="MM_jumpMenu('parent',this,0)">
          <option value=" " selected>- - - - </option>
          <option value="<?php echo $PHP_SELF ?>?was=<?php echo $_POST['was'];?>&hw=1">PC</option>
          <option value="<?php echo $PHP_SELF ?>?was=<?php echo $_POST['was'];?>&hw=2">Monitor</option>
          <option value="<?php echo $PHP_SELF ?>?was=<?php echo $_POST['was'];?>&hw=3">Drucker</option>
        </select>
        <?php }?>
        <?php if ($hw == '1') { ?>
        <input name="pcnr" type="text" id="pcnr" value="<?php echo $pcnr?>">
        <input name="system" type="text" id="system" value="<?php echo $system?>">
        <?php }?>
        <input type="submit" name="Submit" value="Abschicken">
      </td>
    </tr>
  </table>

</form>

  1. Hi Lutz,

    ich verstehe leider nicht so ganz, wo das Problem liegt. Könntest du den Fehler nochmal genau beschreiben?

    Viele Grüße
    Ben

    --
    Phantasie ist wichtiger als Wissen. - Albert Einstein
    1. Hallo

      klar gerne,
      Hatte auch was vergessen. Das javascript für das sprungmenü.

      also nach dem aufrufen sind zwei felder sichtbar.

      in das Feld "was" soll ein Text eingetippt werden, dann soll im Listenmenü PC ausgewählt werden, dann sollen eigentlich die Variablen im url sichtbar sein, nur "was" bleibt leer.
      Die Variable "was" nicht übergeben. Allerdings wenn ich in das textfeld einen werte eingebe dann auf submit gehe , wird die variable übergeben.
      Die Übergabe sollte aber erst nach Auswahl aus dem Listenfeld stattfinden.
      Hier nocheinmal der ganze code.

      Danke

      Lutz

      <script language="JavaScript" type="text/JavaScript">
      <!--
      function MM_jumpMenu(targ,selObj,restore){ //v3.0
        eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
        if (restore) selObj.selectedIndex=0;
      }
      //-->
      </script>
      </head>

      <body>
      <form name="form1" method="post" action="<?php echo $PHP_SELF ?>">
              <input name="was" type="text" id="was" value="<?php echo $was ?>">
              <?php if (!$was) {?>
              <select name="hw" id="hw" onChange="MM_jumpMenu('parent',this,0)">
                <option value=" " selected>- - - - </option>
                <option value="<?php echo $PHP_SELF ?>?was=<?php echo $_POST['was'];?>&hw=1">PC</option>
                <option value="<?php echo $PHP_SELF ?>?hw=2&was=<?php echo $was?>">Monitor</option>
                <option value="<?php echo $PHP_SELF ?>?hw=3&was=<?php echo $was?>">Drucker</option>
              </select>
              <?php }?>
              <?php if ($hw == '1') { ?>
              <input name="pcnr" type="text" id="pcnr" value="<?php echo $pcnr?>">
              <input name="system" type="text" id="system" value="<?php echo $system?>">
              <?php }?>
          </form>

      1. Hallo,

        also ich glaube, dass kann auch gar nicht Funktionieren, weil PHP ja vom Browser schon interpretiert wird.

        Du kannst nicht direkt den Value des Inputs als Variable in das select-Feld schreiben. Dazu müsstest du die Variable erst einmal übergeben, um sie dann mit $_POST['was'] an die Url hängen zu können.

        Bin nicht sicher, ob es daran liegt, aber so würde ich es mir erklären.

        Vielleicht versuchst du mal mit JavaScript den Inhalt des Textfeldes an die Url anzuhängen? Damit dürfte es gehen.

        Viele Grüße
        Ben

        --
        Phantasie ist wichtiger als Wissen. - Albert Einstein
        1. Hi Ben,

          OK, schade eigentlich kann man nix machen, ich gebe es auf.

          Danke
          Lutz

          1. Hi Lutz,

            muss es denn PHP sein? Probier es doch mit JavaScript, dann müsste es gehen. :-)

            Viele Grüße
            Ben

            --
            Phantasie ist wichtiger als Wissen. - Albert Einstein
            1. Hi Ben,

              ja wäre schon besser, weil ich übergebe ja noch einige andere variablen und da geht es alledings kommen die aus ner query oder es ist das datum . Nur "was" wird nicht übergeben, das gepostete Variante war nur ein test.
              Aber ich denke irgendwie sollte es gehen, weiß nur nicht wie.

              Gruß
              Lutz

              1. Hi Lutz,

                also wenn du die Eingabe in das Textfeld erst bestätigen lassen würdest, könntest du ja "was" übergeben und danach dementsprechend als value einbauen. Wäre das eine möglche Lösung? Kenne ja die Hintergründe nicht.

                Viele Grüße
                Ben

                --
                Phantasie ist wichtiger als Wissen. - Albert Einstein
                1. Ja so würde es gehen, das wollte ich aber nicht , rein theoretisch müsste es mit einem zweiten Sprungmenü klappen, ich brauche halt nur irgendwas was eine aktion auslößt, aber ein submitschalter sollte es nicht sein.

                  Gruß
                  Lutz

                  1. Hi Lutz,

                    du könntst natürlich onClick auf das DropDown legen, dabei eine Variable anlegen, die Seite übergeben und das eben nur, wenn die Variable noch nicht existiert. So wird sie nur beim ersten Klick auf das Menü abgeschickt und die "was" übergeben. ist vielleicht nur ne seltsame Methode.. *g*

                    Viele Grüße
                    Ben

                    --
                    Phantasie ist wichtiger als Wissen. - Albert Einstein
                    1. Hi Ben,

                      ich versuchs einfach mal, nach onClick, lasse ich das Eingabefeld verschwinden und mit einem echo die Variable ausgeben und dann wieder übergeben, sollte gehen.
                      So ungefähr:
                       <?php if (isset ($was)) {?>
                                                <input name="was" type="hidden" class="input" value="<?php echo $was?>">
                                                <?php echo $was?>
                      <?php }else {  ?>
                      <input.......

                      ich versuchs.

                      Gruß
                      Lutz

                      1. Hi Lutz,

                        ja, versuch das mal. Klingt ganz gut. :-)

                        Würde mich freuen, von dem Ergebnis zu hören. Interessiert mich mal, ob es dann klappt.

                        Viele Grüße
                        Ben

                        --
                        Phantasie ist wichtiger als Wissen. - Albert Einstein
                        1. also mit einem Sprungmenü klappt es. Besser wäre natürlich der Radiobutton.
                          Schade

                          Gruß
                          Lutz

                          hier ist mal der ganze code , zum testen, wie gesagt, bei was wäre mir ein radio lieber gewesen.

                          <?php   if ($was == 1) {
                              $artwas = "Störung";
                            }else if
                               ($was == 2){
                              $artwas = "Wartung";
                              }else if
                           ($was == 3){
                              $artwas = "Sonstiges";
                           } else {
                            } ?>
                          <?php   if ($hw == 1) {
                              $namehw = "PC";
                            }else if
                               ($hw == 2){
                              $namehw = "Monitor";
                              }else  {
                              $namehw = "Drucker";
                            } ?>

                          <html>
                          <head>
                          <title>Unbenanntes Dokument</title>
                          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
                          <script language="JavaScript" type="text/JavaScript">
                          <!--
                          function MM_jumpMenu(targ,selObj,restore){ //v3.0
                            eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
                            if (restore) selObj.selectedIndex=0;
                          }
                          //-->
                          </script>
                          </head>

                          <body>
                          <form name="form1" method="post" action="<?php echo $PHP_SELF ?>">
                            <?php if (empty($was)) { ?>
                            WAS 
                            <select name="was" id="was" onChange="MM_jumpMenu('parent',this,0)">
                             <option value=" " selected>- - - - </option>
                              <option value="<?php echo $PHP_SELF ?>?was=1">Störung</option>
                              <option value="<?php echo $PHP_SELF ?>?was=2">Wartung</option>
                              <option value="<?php echo $PHP_SELF ?>?was=3">Sonstiges</option>
                            </select>

                          <?php }else { ?>
                            <?php echo $artwas ?>
                            <?php }?>
                            <?php if (isset ($hw)) {?>
                                                    <input name="hw" type="hidden" class="input" value="<?php echo $hw?>">
                            <?php echo $namehw ?>
                            <?php }else {  ?>
                            Welche Hardware
                            <select name="hw" id="hw" onChange="MM_jumpMenu('parent',this,0)">
                                    <option value=" " selected>- - - - </option>
                                    <option value="<?php echo $PHP_SELF ?>?was=<?php echo $was?>&hw=1">PC</option>
                                    <option value="<?php echo $PHP_SELF ?>?was=<?php echo $was?>&hw=2">Monitor</option>
                                    <option value="<?php echo $PHP_SELF ?>?was=<?php echo $was?>&hw=3">Drucker</option>
                                  </select>
                            <?php } // zu if Hw?>
                            <?php if ($hw == '1') { ?>
                            PCNr.:
                            <input name="pcnr" type="text" id="pcnr" value="<?php echo $pcnr?>">
                            System
                            <input name="system" type="text" id="system" value="<?php echo $system?>">
                                  <?php }?>
                              </form>
                          </body>
                          </html>

                          1. Hi Lutz,

                            was hat denn mit einem Radiobutton nicht funktioniert? Oder wie hast du versucht das zu lösen?
                            Vielleicht findet ja jemand hier noch ne Möglichkeit, das ganze über deinen gewünschten Radio-Button zu machen?

                            Viele Grüße
                            Ben

                            --
                            Phantasie ist wichtiger als Wissen. - Albert Einstein
                            1. Hi,

                              ich muss doch irgendwie ne aktion auslösen bei "was" (ohne submit) das ging nicht beim radiobutton.

                              gruß
                              Lutz

                              1. Hi,

                                wieso geht das da nicht?

                                onClick oder onChange?

                                Viele Grüße
                                Ben

                                --
                                Phantasie ist wichtiger als Wissen. - Albert Einstein
                                1. Hi Ben, ich bin anfänger , wie
                                  kannst du das sprungmenü mal mit einem radio ersetzen?

                                  danke

                                  Lutz

                                  1. Hi Lutz,

                                    werde mich heute Abend nochmal damit befassen. Muss jetzt mal arbeiten. :-)

                                    Viele Grüße
                                    Ben

                                    --
                                    Phantasie ist wichtiger als Wissen. - Albert Einstein
                                    1. Hallo

                                      fein ,
                                      danke, aber nur wenn es nicht zu viel arbeit macht

                                      gruß
                                      lutz

        2. Hallo Ben,

          also ich glaube, dass kann auch gar nicht Funktionieren, weil PHP ja vom Browser schon interpretiert wird.

          Vom Browser wird PHP ganz sicher nicht interpretiert...

          Gruß,
          dimde

      2. Hallo

        Hier nocheinmal der ganze code.
        [...]
        <body>
        <form name="form1" method="post" action="<?php echo $PHP_SELF ?>">

        Du hast hier ein Formular, daß die Daten mit Post übermitteln soll ...

        <input name="was" type="text" id="was" value="<?php echo $was ?>">
                <?php if (!$was) {?>
                <select name="hw" id="hw" onChange="MM_jumpMenu('parent',this,0)">
                  <option value=" " selected>- - - - </option>
                  <option value="<?php echo $PHP_SELF ?>?was=<?php echo $_POST['was'];?>&hw=1">PC</option>

        ... und willst hier etwas mit Get weitergeben.

        Wenn <?php if (!$was) {?> eine Abfrage der Existenz von $was sein soll,
        dann sollte das mit !isset($_POST["was"]) geschehen. Das funktioniert aber
        erst, wenn das Formular mit "was" abgesendet wurde, ausgefüllt oder nicht,
        weil "was" vorher für PHP nicht existieren _kann_ (Wird ja auf dem Server ausgeführt).

        [...]
                </select>

        <?php } // Der PHP Block muß hier nicht geschlossen und wieder geöffnet werden.
                   if ($hw == '1') { ?>

        <input ...

        Ich hoffe, das war jetzt nicht zu verwirrend.

        Tschö, Auge

        1. Hallo Auge,

          auch dir danke,
          habe deine Nachricht auch eben erst gelesen.
          was Du geschrieben hast war nicht verwirrend.

          Gruß

          Lutz

  2. Hallo Lutz,

    ich habe dieses Problem schon mal in einem anderen Forum gepostet. ich komme einfach nicht weiter.
    Weiss jemand was ich falsch mache warum wird meine Variable aus dem Texinput "was" nicht übergeben?

    <form name="form1" method="post" action="<?php echo $PHP_SELF ?>">

    Seit PHP Version 4.1.0 ist die Standardeinstellung für
        register_globals
    off, nicht mehr on. Das ist gut so, und sollte nicht geändert werden.
    Dies hat zur Konsequenz, dass Du auch nicht mehr direkt auf $PHP_SELF zugreifen kannst. So wie der Zugriff auf die values der Formularelemente je nach Übertragungsmethode mit den Superglobals $_POST bzw. $_GET erfolgt, so musst Du nun $_SERVER['PHP_SELF'] verwenden.

    Nachdem eine Auswahl in der SELECT-Box erfolgt ist, möchtest Du auf den Wert zugreifen und ggf. eine ganz andere SELECT-Box anzeigen, die z.B. auf einer Datenbankabfrage beruht, die den ausgewählten Wert verwendet. Dazu musst Du die Auswahl an den Server zurückschicken, d.h. die action des Formulars auslösen.

    Dazu solltest Du _unbedingt_ einen Submit-Button einbauen, z.B. mit "GO" oder "Los" beschriftet. Du kannst in einem Formular mehr als einen Submit-Button verwenden, das weißt Du doch?

    Zusätzlich kannst Du den Submit per Javascript auslösen, indem Du das onchange-Ereignis des SELECT abfängst. Auf solche Weise funktionieren viele Formulare im Web.

    Dein Formular muss allerdings entsprechend umgebaut werden, d.h. die Logik ändert sich etwas.

    PS: Gib nicht auf!

    Gruss,

    Vinzenz

    --
    Die FAQ </faq/> des Forums sind lesenswert und hilfreich.
    1. Hallo Vinzenz,

      ich hatte deine Nachricht eben erst gelesen, danke.
      aufgegeben habe ich es nicht, jetzt geht es, aber mit sprungmenü.
      Ich merke mir das für das nächste mal.

      Gruß

      Lutz