Ankündigung

Einklappen
Keine Ankündigung bisher.

Mehrfacherfassung, Variablen erneut auslesen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mehrfacherfassung, Variablen erneut auslesen

    Hi,

    Ausgangslage:
    --
    - Formular, SQL-Insert passiert nach Submit Button.
    - normaler Insert eines Artikels ist kein Problem
    - Nun soll sowas die Mehrfacherfassung eingebaut werden,

    d.h.
    Die felder sollen mit den vorherigen Werten (innerhalb der Session) vorausgefüllt sein.
    In den POSt Variablen sind die Werte ja noch enthalten,
    aber ich kann schlecht im Formular schon die Values einbauen da sonst beim Erst-Aufruf fehler entstehen.

    Wie kann ich das Problem angehen ?
    Ideen ? vorschläge ?

    mir kam schon die idee, einfach eine "NEUE " seite aufzurufen welche dann den letzten DB eintrag ausliest und ich so an die Daten kommen , anstatt über die Variablen zu gehn.


    Danke im Vorraus

    gruss
    fidel_

  • #2
    Schau dir dieses Muster an:

    25.2. Von HTML zu PHP: Schreibe Formularverarbeitungen in Normalform
    http://www.php-faq.de/q/q-stil-normalform.html

    ~dilemma~

    Kommentar


    • #3
      Werte aus Parametern (POST, GET, etc) ohne Prüfung direkt zu übernehmen ist sowieso nie eine gute Idee.

      Hol Dir die benötigten Daten für das Formular aus den POST Daten (und überprüfen sie). Sind die Daten nicht im POST enthalten, bleibt Deine Variable leer, ansonsten wird sie gefüllt.

      Wenn Du jetzt in Deinem Formular immer diese Variablen ausgibst, wird entweder der leer Inhalt oder der in den Parametern enthaltene eingetragen.

      Mögliche Variante:
      PHP-Code:
      <?php

      $pVar1 
      '';
      $pVar2 '';
      ...
      $pVarN '';

      if ( 
      array_key_exists'param1'$_POST ) )
      {
         
      $pVar1 $_POST['param1'];
      }

      if ( 
      array_key_exists'param2'$_POST ) )
      { ... }
      ?>
      Im ersten Schritt initialisierst Du die lokal benötigten Variablen für Dein Formular. Dann gibts später auch keine Fehler wegen nicht initialisierter Variablen.

      Anschließend holst Du jeden Wert aus den Parametern in die entsprechende lokale Var und überprüfst sie anschließend noch (wenn Dir Sicherheit wichtig ist ).

      In Deinem Formular kommt dann in jedes "value" Attribut ein
      PHP-Code:
      <?php
      print( $pVarX ); ?>
      und schon wird Dein Forumlar vorgefüllt, wenn die Daten vorhanden sind.

      Ich hoffe das war Deine Frage und ich konnte Dir wenigstens einen Denkanstoß geben ^^

      Kommentar


      • #4
        danke für das Stichwort

        Kommentar


        • #5
          EDIT: IGNORE ME


          mh,
          also ich habe mir jetzt mal nach einiger Suche ein quasi Affen-Bespiel gebastelt.
          Die Werte werden in die DB geschrieben und sind weiterhin im Formular sichtbar.
          soweit so gut.

          Mein Formular besteht aber nicht nur aus Textfeldern,
          sondern u.a. auch aus MySQL gefüllten Dropboxen.

          d.h. ich brauche auch die Übername der selektierten Auswahlkästen.

          hier mal mein code:
          PHP-Code:
          <?php
          // Affen und anderes ;)
          //
          //
          //
          // reinige die Eingabe
          function tidy_post_values()
          {
              
          $stack = array();
             
          $args func_get_args();
             while (
          $idx array_shift($args))
             {
                  if (!isset(
          $_POST[$idx]))
                  {
                      
          $stack[$idx] = '';
                   continue;
                   }
                
          $tmp trim($_POST[$idx]);
                
          $tmp get_magic_quotes_gpc()
                      ? 
          stripslashes($tmp)
                      : 
          $tmp;
                   
          $stack[$idx] = htmlentities($tmp);
               }
              return 
          $stack;
          }


          // Form stuff
          function get_comment_form()
          {
          $values tidy_post_values('einkaufspreis','artikel_kategorie');
          //
          //
          //
          //
          echo "<form action='{$_SERVER['REQUEST_URI']}' method='post'>";
          echo 
          "<input type='hidden' name='COMMENTACTION' value='ISSEND'/>";
          echo 
          "<table width='700' border='1' cellpadding='2' cellspacing='1' align='left'>";
          //
          // textfelder test
          echo "<tr>";
              echo 
          "<td></td>";
              echo 
          "<td>*Einkaufspreis:</td>";
              echo 
          "<td><input size='30'  name='einkaufspreis' type='text' value='{$values['einkaufspreis']}' ></td>";
              echo 
          "<td></td>";
              echo 
          "</tr>";
              
          // Dropboxen test
              
          echo "<tr>";
                  echo 
          "<td></td>";
                  echo 
          "<td>[i]Kategorie:[/i]</td>";
                  echo 
          "<td colspan='2'>";
                      echo 
          "<select class='form' id='artikel_kategorie' name='artikel_kategorie'>";
                      echo 
          "<option value=''>Bitte w&auml;hlen</option>";
          $sql=        "SELECT         inventar_kategorie_id, inventar_kategorie_bezeichnung 
          FROM             KIS_inventar_kategorie 
          ORDER BY     inventar_kategorie_bezeichnung ASC"
          ;
          $result=                mysql_query($sql);
          while (
          $wahl mysql_fetch_object ($result)) 
          {
              echo 
          '<option value="'$wahl->inventar_kategorie_id'">'$wahl->inventar_kategorie_bezeichnung'</option>';
          }                                             
          echo 
          "</select>";
          echo 
          "</td>";
              
          //
              
          echo "<tr>";
              echo 
          "<td colspan='4'>";
              echo 
          "<input type='submit' name='GO' value='Absenden'/>    ";
              echo 
          "</tr>";
              echo 
          "</form>";  
          }



          // bei Knopfdruck
          if(isset($_POST['GO']))
          {
              
          $eins    =    $_POST['einkaufspreis'];
              
          $zwo    =    $_POST['artikel_kategorie'];
              
              
          $sql "    INSERT INTO     test 
                                              (a,b)
                          VALUES             ('
          $eins', '$zwo')";
              
          $result  mysql_query($sql) or die('jo hier FEHLER');
          }



          // MAIN
          echo get_comment_form();



          ?>

          Kommentar


          • #6
            Um einen Eintrag in einer Dropdownbox vorzuslektieren mußt Du einfach nur in den <option> Tag ein "selected" eintragen.

            Code:
            <select name="irgendwas">
               <option value="a">Ich bin nicht selektiert</option>
               <option value="b" selected>Ich bin Vorselektiert</option>
            </select>
            Den Rest bekommst Du bestimmt selber hin

            Kommentar

            Lädt...
            X