Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] input daten per post mit zählvariable übergeben

Einklappen

Neue Werbung 2019

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

  • [Erledigt] input daten per post mit zählvariable übergeben

    hallo php freaks, ich komme mal wieder nicht weiter

    in einem php dokument habe ich in einer for schleife select felder erstellt,
    die ausgewählten werte des select option feldes werden nun per post an eine andere php datei übergeben,
    in dieser php datei habe ich erneut eine gleich aufgebaute for schleife und gebe die daten aus.

    code-mäßig sieht das etwa so aus:
    PHP-Code:
    <form action="stringgenerate.php" method="POST">
    <?php for($k=1$k<5$k++)
        {
           for(
    $j=0$j<10$j=$j+10
             { 
    ?>
    <select name="swprod">
                    <option selected>Auswählen</option> 
                             <?php
                                  oci_execute
    ($sql);
                                  while (
    $row oci_fetch_array($sql))
                                      {
                                        
    $entry $row['ITEM_ID'];
                                        
    $entry2 $row['REVISION'];
                                        
    ?>
                    <option value="<?php echo $entry?>"><?php echo $entry?> - Revision: <?php echo $entry2?></option>
                    <?php 
                    

                    
    ?>
            </select>
    <?php
    }
    ?>
    </form>
    und der aufruf dann:
    PHP-Code:
    if ((isset($_POST["create"])) && ($_POST['swprod'] != "Auswählen"))
    {
    .
    .
    .
    .
    for(
    $k=1$k<5$k++) 
              {           
                for(
    $j=0$j<10$j=$j+10)  
                  {  
                    
    $var1 $_POST['swprod'];                  
                    
    $rii_swprod[$k]='"Test: "'.$var1.'" "';                     
                  }              
              }   
    for(
    $k=1$k<5$k++) 
              {           
                for(
    $j=0$j<10$j=$j+10)  
                  { 
              echo 
    $rii_swprod[$k]
    }
    }


    das klappt soweit auch gut, nur da das $var1 = $_POST['swprod']; keine der zählvariablen beinhaltet gibt er natürlich immer nur den wert des letzten select option feldes aus,
    die frage also nun, wie füge an das name="swprod" womit die daten ja übermittelt werden eine der zählvariablen an?

    ich hoffe ihr versteht was ich meine, danke im vorraus


  • #2
    Brauchst du nicht. Notier den Namen als swprod[], dann bekommst du die Daten gleich hübsch in einem Array verpackt...

    Btw solltest du keine SQL Abfragen innerhalb von Schleifen abfeuern, das drückt arg auf die Performance
    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

    Kommentar


    • #3
      for($j=0; $j<10; $j=$j+10)
      So wahnsinnig viele Schleifendurchläufe hast du damit aber nicht, gell?
      PHP-Code:
      if ($var != 0) {
        
      $var 0;

      Kommentar


      • #4
        @nikosch - danke für den array tipp, hab das jetzt so hinbekommen, das mit dem sql zeugs in der schleife ist mir bewusst, ich weiß aber nicht wie ich das verbessern könnte ?
        erst alle db einträge in ein array schreiben? oder hast du da noch nen kniff den ich nicht kenne

        @wolla - redmer nicht drüber^^

        Kommentar


        • #5
          ähm sorry für doppelpost, aber mir ist noch was aufgefallen:

          hab jetzt in der seite wo alles ausgewertet wird folgendes:
          PHP-Code:
          if ((isset($_POST["create"])) && ($_POST['swprod'] != "Auswählen") && ($_POST['pool_lic'] != "Eintragen")) 
          komischerweise werden die einschränkungen ignoriert, und wenn nichts geändert wurde werden mir dann auswählen und eintragen ausgegeben... woran liegt das?

          edit / also das mit dem sql hab ich jetzt so ausgelagert, dass er das sql ergebnis in einem array speichert und ich dann im select option auf das array zugreife - geht deutlich schneller,

          aber das problem mit der if bedingung hab ich noch nicht lösen können

          Kommentar


          • #6
            Zitat von luke.- Beitrag anzeigen
            komischerweise werden die einschränkungen ignoriert
            Bitte drücke dich deutlicher aus.
            Was passiert bei welchen Testdaten?

            Kommentar


            • #7
              Zitat von luke.- Beitrag anzeigen
              PHP-Code:
              if ((isset($_POST["create"])) && ($_POST['swprod'] != "Auswählen") && ($_POST['pool_lic'] != "Eintragen")) 
              Und zeig auch mal das komplette Formular... kann keiner riechen, welche Daten du versendest (oder auch nicht).
              Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

              Kommentar


              • #8
                öhm ja also if bedingung in der blabla.php sieht wie gesagt so aus:
                PHP-Code:
                if ((isset($_POST["create"])) && ($_POST['swprod'] != "Auswählen") && ($_POST['pool_lic'] != "Eintragen")) 
                und das das formular was abgeschickt wurde hat den aufbau:
                Code:
                <form action="blabla.php" method="POST">
                <select name="swprod[]">
                                <option selected>Auswählen</option> 
                                         <?php   
                                             for($x=0; $x<$entrylaenge; $x++)
                                              {
                                              ?>
                                <option value="<?php echo $entry[$x]; ?>"><?php echo $entry[$x]; ?> </option>
                                <?php                 
                                } 
                                ?>
                </select>
                <input type="text" name="pool_lic[]" size="40" value="Eintragen">
                <input type="submit" name="create" value="speichern">
                </form>
                ps. hinter $entry liegt ne sql abfrage, falls die auch noch benötigt wird bitte nochmal schreiben

                Kommentar


                • #9
                  Zitat von luke.- Beitrag anzeigen
                  öhm ja also sql in der blabla.php sieht wie gesagt so aus:
                  PHP-Code:
                  if ((isset($_POST["create"])) && ($_POST['swprod'] != "Auswählen") && ($_POST['pool_lic'] != "Eintragen")) 
                  Was soll daran jetzt „sql“ sein?

                  Wenn ich dich bitte, dich deutlicher auszudrücken, dann meine ich nicht, schreib bitte mehr Blah-Blah, sondern denke erst mal nach vor dem schreiben.

                  Kommentar


                  • #10
                    entschuldigung dass ich mich mal verschrieben habe, ich hoffe so wie es jetzt ist, ist es verständlicher

                    Kommentar


                    • #11
                      Du hast uns immer noch nicht nachvollziehbar beschrieben, was jetzt eigentlich der Fehler ist.
                      Ich habe dich explizit gefragt, welches fehlerhafte Verhalten du bei welchen Eingabedaten beobachtest.

                      Wenn du mal selbst ein bisschen sinnvolles Debugging betreiben würdest, dann hättest du schon längst merken können, warum die Vergleiche nicht das gewünschte liefern.

                      Kommentar


                      • #12
                        ja ich dachte es wäre verständlich ausgedrückt gewesen, enschuldigen sie vielmals.

                        Ich beobachte trotz Debugging, folgendes fehlerhafte Verhalten.
                        Trotzdessen die Eingaben im inputfeld bzw. die Selektionen im select-option-feld vollkommen richtig übertragen werden, wird die beschriebene If-Bedingung ignoriert.
                        Sprich: wähle ich beispielsweise eines der Optionen (in der for-schleife) aus, so wird es richtig übertragen, lasse ich die Auswahl jedoch beim vorselektierten ,,Auswählen'', dann wird das ,,Auswählen'' übertragen und später in einer anderen Funktion genutzt.
                        Und genau das ist das Fehlverhalten, denn laut If-Bedingung soll bei Vorkommen des Wertes ,,Auswählen'' zum else gesprungen werden und nicht die Funktion aufgerufen, die mit dem Wert weiterarbeitet.

                        so in Ordnung?

                        Kommentar


                        • #13
                          Du hast die Selectbox als Array definiert.
                          Code:
                          name="swprod[]"
                          Das macht außerdem wenig Sinn, wenn keine Mehrfachselektion zugelassen wird.
                          http://hallophp.de

                          Kommentar


                          • #14
                            Zitat von luke.- Beitrag anzeigen
                            so in Ordnung?
                            Nö, weil du immer noch kein Debugging betrieben hast - sonst wäre dir das, was Asipak gerade sagte, schon aufgefallen.

                            Kommentar


                            • #15
                              meine Problembeschreibung hat doch nichts mit mehrfachselektierungen zutun, das mit dem Array definieren ist, weil das jeweils selektierte element, später in einer anderen for schleife
                              entsprechend ausgegeben werden,
                              das es daran liegt hab ich auch schon getestet in dem ich in der if bedinung mehrere schreibweisen probiert habe,
                              ansonsten finde ich es langsam etwas vermessen im Einsteiger-Forum davon auszugehen, dass jeder der eine Frage stellt schon perfektes Debugging beherrscht, entschuldigung dafür...

                              Kommentar

                              Lädt...
                              X