Ankündigung

Einklappen
Keine Ankündigung bisher.

Bei Auswahl bei einer Liste kommt immer letzte Wert

Einklappen

Neue Werbung 2019

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

  • Bei Auswahl bei einer Liste kommt immer letzte Wert

    Hallo Ich lese eine Liste aus mehrern Zeilen aus einer DB
    Wenn ich einen Auswahl tätige möchte ich ein hidden Feld übergeben per Post.


    Er zeigt mir aber immer die letzten Wert aus der Liste an.
    Hat jemand einen kleinen Tipp für mich.


    PHP-Code:

    <html>
        <head>

            <link href="style.css" rel="stylesheet" type="text/css" />
        </head>


    <div><fieldset style="width:700px" form='form8' name='form'><legend><button type="button" name="ticket_text"  onclick='link_offen()' class="demo-form-submit">Offene Aufträge</button></legend>

    <form name="frmUser" method="post" action="uebergabe.php">

    <?php


        $TS_HAENDLER 
    =22;
        
    $ID_NR =1;


     require_once 
    "../function/db_verbindung.php";



    echo 
    "<table class='tbl-qa'>\n";
    echo 
    "<thead><tr>
                      <th class='table-header'>Auftrag Nr. </th>
                       <th class='table-header'>Typ</th>
                       <th class='table-header'>Betreff</th>
                   <th class='table-header'>Eingabefeld</th>
                   <th class='table-header'>Angelegt</th>
                   <th class='table-header'>Priorität</th>
                   </tr>
                        </thead>\n"
    ;
    echo 
    "<tbody>";     
    $ergebnis_stoerung $mysqli->query("SELECT * FROM `stoerung`
    WHERE ST_STATUS = 'offen' and ST_BETREFF_STAT ='1' and TS_HAENDLER = 
    $TS_HAENDLER;");   
    while(
    $zeile $ergebnis_stoerung->fetch_array()) {

    $ST_BETREFF$zeile["ST_BETREFF"] ;
    $ST_NUMMER$zeile["ST_NUMMER"] ;
    $ST_TYP $zeile["ST_TYP"] ;
    $ST_EINGABEFELD =$zeile["ST_EINGABEFELD"] ;
    $ST_DATUM_ANG $zeile["ST_DATUM_ANG"];
    $ST_DRING $zeile["ST_DRING"];




      echo 
    "<tr class='table-row' id='row-$ID_NR'>
               <td class='table-row'><input type='submit' style='height:30px; width:100px; font-size:12px;' name='ST_NUMMER_LINK' id ='
    $ST_NUMMER' value= $ST_NUMMER  onclick='link("$ST_NUMMER.")'><input type='hidden' name ='hidden_nr' value=$ST_NUMMER></td>"
         
    "<td class='table-row'>" $ST_TYP .   "</td>"
             
    "<td class='table-row'>" $ST_BETREFF .      "</td>"
         
    "<td class='table-row'>" $ST_EINGABEFELD .    "</td>"
         
    "<td class='table-row'>" $ST_DATUM_ANG"</td>"
         
    "<td class='table-row'>" $ST_DRING "</td>"        
       
    "</tr>\n";  



    }


    echo 
    "</tbody>\n";
    echo 
    "</table>\n";


    $ergebnis_stoerung->close();
    $mysqli->close();





    ?>

     </form>
     </fieldset></div>

    <?php
       
    if (isset($_POST['hidden_nr'])) {
        
    $ST_NUMMER_n $_POST['hidden_nr'];

        echo 
    $ST_NUMMER_n;

       }else{

       }  
    ?>

    </html>

  • #2
    Wenn du mehrere input's mit dem selben Namen hast, gewinnt das letzte. Benutz' ein Array, name="hidden_nr[]"
    [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

    Kommentar


    • #3
      Bin schon weiter, bekomme immer das ganze Array angezeigt.
      Kannst du mur sagen wie ich auf die einzelnen Array zugreifen kann?

      mein Problem wo sag ich das es die erste Zeile usw ist.?
      PHP-Code:
         if (isset($_POST['hidden_nr'])) {



      foreach(
      $_POST['hidden_nr'] as $name => $value){
      echo 
      $name;
      echo 
      "<br>";
      echo 
      $value['ST_NUMMER'];






      PHP-Code:

      <html>

          <head>

              <link href="style.css" rel="stylesheet" type="text/css" />
          </head>


      <div><fieldset style="width:700px" form='form8' name='form'><legend><button type="button" name="ticket_text"  onclick='link_offen()' class="demo-form-submit">Offene Aufträge</button></legend>

      <form name="frmUser" method="post" action="uebergabe.php">

      <?php


          $TS_HAENDLER 
      =22;
          
      $ID_NR =1;
      $i =0;

       require_once 
      "../function/db_verbindung.php";



      echo 
      "<table class='tbl-qa'>\n";
      echo 
      "<thead><tr>
                        <th class='table-header'>Auftrag Nr. </th>
                         <th class='table-header'>Typ</th>
                         <th class='table-header'>Betreff</th>
                     <th class='table-header'>Eingabefeld</th>
                     <th class='table-header'>Angelegt</th>
                     <th class='table-header'>Priorität</th>
                     </tr>
                          </thead>\n"
      ;
      echo 
      "<tbody>";     
      $ergebnis_stoerung $mysqli->query("SELECT * FROM `stoerung`
      WHERE ST_STATUS = 'offen' and ST_BETREFF_STAT ='1' and TS_HAENDLER = 
      $TS_HAENDLER;");   
      while(
      $zeile $ergebnis_stoerung->fetch_array()) {


      $ST_BETREFF$zeile["ST_BETREFF"] ;
      $ST_NUMMER$zeile["ST_NUMMER"] ;
      $ST_TYP $zeile["ST_TYP"] ;
      $ST_EINGABEFELD =$zeile["ST_EINGABEFELD"] ;
      $ST_DATUM_ANG $zeile["ST_DATUM_ANG"];
      $ST_DRING $zeile["ST_DRING"];




        echo 
      "<tr class='table-row' id='row-$ID_NR'>
                 <td class='table-row'><input type='submit' style='height:30px; width:100px; font-size:12px;' name='ST_NUMMER_LINK' id ='
      $ST_NUMMER' value= $ST_NUMMER  onclick='link("$ST_NUMMER.")'><input type='hidden' name ='hidden_nr[".$i++."][ST_NUMMER]' value=$ST_NUMMER></td>"
           
      "<td class='table-row'>" $ST_TYP .   "</td>"
               
      "<td class='table-row'>" $ST_BETREFF .      "</td>"
           
      "<td class='table-row'>" $ST_EINGABEFELD .    "</td>"
           
      "<td class='table-row'>" $ST_DATUM_ANG"</td>"
           
      "<td class='table-row'>" $ST_DRING "</td>"        
         
      "</tr>\n";  



      }


      echo 
      "</tbody>\n";
      echo 
      "</table>\n";


      $ergebnis_stoerung->close();
      $mysqli->close();





      ?>

       </form>
       </fieldset></div>
      <?php
         
      if (isset($_POST['hidden_nr'])) {



      foreach(
      $_POST['hidden_nr'][$i] as $name => $value){
      echo 
      $name;
      echo 
      "<br>";
      echo 
      $value['ST_NUMMER'];

      }  



         }else{


         }  
      ?>

      </html>

      Kommentar


      • #4
        Was heisst denn "Zeil"? mit print_r() kannst du dir das ganze Array anzeigen. Die Keys sind so wie du die in dem Script vergeben hast und mit $name ausliest.
        [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

        Kommentar


        • #5
          Moin, moin!

          die richtige Empfehlung zu geben, ist nicht ganz einfach, wenn man nicht alle zusammenhänge kennt.
          Ich versuche mal mein bestes ..

          Einige Sachen sind meines Erachtens einfach unnötig.
          So werden durch deine Konstruktion mehrere Werte übergeben. Letztlich interessiert dich ja nur der Wert der angeklickt wurde.

          Folgende Änderung:
          • Hidden Field entfernen
          • das andere Input Feld (type="submit") umbenennen in name="hidden_nr"
          Des Weiteren kann das onclick='link(". $ST_NUMMER.")' auch weg. Das ist unnötig.
          Weiß eh nuícht was das soll, da dies einen Link erstellt, der irgenwas im Stil <a href="1">1</a> erzeugt ...
          Der Input sendet das Formular eh ab, so dass er Link egal ist ...

          Für die Ausgabe des konkreten Datensatzes, empfehle ich eine zweite SQL-Abfrage.

          Nachfolgend ein überarbeiteter Vorschlag der Version aus deinem ursprünglichen Beitrag.

          PHP-Code:
          <html>
              <head>
                  <link href="style.css" rel="stylesheet" type="text/css" />
              </head>

              <body>
                  <div>
                      <fieldset style="width:700px" form='form8' name='form'>
                          <legend>
                              <button type="button" name="ticket_text"  onclick='link_offen()' class="demo-form-submit">Offene Aufträge</button>
                          </legend>

                          <form name="frmUser" method="post" action="uebergabe.php">

                              <?php
                              $TS_HAENDLER 
          22;
                              
          $ID_NR 1;

                              require_once 
          "../function/db_verbindung.php";
                              
          ?>

                              <table class = "tbl-qa">
                                  <thead><tr>
                                          <th class = "table-header">Auftrag Nr.</th>
                                          <th class = "table-header">Typ</th>
                                          <th class = "table-header">Betreff</th>
                                          <th class = "table-header">Eingabefeld</th>
                                          <th class = "table-header">Angelegt</th>
                                          <th class = "table-header">Priorität</th>
                                      </tr>
                                  </thead>
                                  <tbody>
                                      <?php
                                      $ergebnis_stoerung 
          $mysqli->query(
                                              
          "SELECT * "
                                              
          "FROM `stoerung` "
                                              
          "WHERE ST_STATUS = 'offen' "
                                              
          "and ST_BETREFF_STAT ='1' "
                                              
          "and TS_HAENDLER = '" $mysqli->real_escape_string($TS_HAENDLER) . "';");
                                      if (
          $mysqli->errno 0):
                                          
          ?>
                                      <h2>Datebase Error</h2>
                                      <p><?= $mysqli->error?></p>
                                      <?php
                                  
          endif;
                                  while (
          $zeile $ergebnis_stoerung->fetch_array()) :

                                      
          $ST_BETREFF $zeile["ST_BETREFF"];
                                      
          $ST_NUMMER $zeile["ST_NUMMER"];
                                      
          $ST_TYP $zeile["ST_TYP"];
                                      
          $ST_EINGABEFELD $zeile["ST_EINGABEFELD"];
                                      
          $ST_DATUM_ANG $zeile["ST_DATUM_ANG"];
                                      
          $ST_DRING $zeile["ST_DRING"];
                                      
          ?>

                                      <tr class="table-row" id="row-<?= $ID_NR ?>">
                                          <td class="table-row">
                                              <input 
                                                  type="submit" 
                                                  style="height:30px; width:100px; font-size:12px;" 
                                                  name="hidden_nr" 
                                                  id ="<?= $ST_NUMMER ?>
                                                  value="<?= $ST_NUMMER ?>"  
                                                  >
                                          </td>
                                          <td class="table-row"><?= $ST_TYP ?></td>
                                          <td class="table-row"><?= $ST_BETREFF ?></td>
                                          <td class="table-row"><?= $ST_EINGABEFELD ?></td>
                                          <td class="table-row"><?= $ST_DATUM_ANG ?></td>
                                          <td class="table-row"><?= $ST_DRING ?></td>
                                      </tr>
                                  <?php endwhile; ?>


                                  </tbody>
                              </table>

                              <?php
                              $ergebnis_stoerung
          ->close();
                              
          ?>

                          </form>
                      </fieldset>
                  </div>

                  <?php
                  
          if (isset($_POST['hidden_nr'])) :
                      
          $ST_NUMMER_n $_POST['hidden_nr'];

                      echo 
          $ST_NUMMER_n;

                      
          $ergebnis_stoerung_zeile $mysqli->query(
                              
          "SELECT * "
                              
          "FROM `stoerung` "
                              
          "WHERE ST_STATUS = 'offen' "
                              
          "and ST_BETREFF_STAT ='1' "
                              
          "and TS_HAENDLER = '" $mysqli->real_escape_string($TS_HAENDLER) . "' "
                              
          "and ST_NUMMER=" $mysqli->real_escape_string($ST_NUMMER_n));
                      if (
          $mysqli->errno 0):
                          
          ?>
                          <h2>Datebase Error</h2>
                          <p><?= $mysqli->error?></p>
                      <?php elseif ($ergebnis_stoerung_zeile->num_rows == 0): ?> 
                          Kein Ergebnis gefunden
                      <?php else: ?>
                          <?php
                          $zeile 
          $ergebnis_stoerung_zeile->fetch_assoc();
                          
          ?>
                          <pre>
                              <?= print_r($zeiletrue?>
                          </pre>
                      <?php
                      
          endif;
                  endif;
                  
          ?>

                  <h2> Debug Output </h2>
                  <h3> POST Vars </h3>
                  <pre><?= print_r($_POSTtrue?></pre>


                  <?php
                  $mysqli
          ->close();
                  
          ?>
              </body>  


          </html>

          Darüber hinaus solltest du in deinem Script die Variablen prüfen.

          @see http://php.net/manual/de/function.filter-input.php
          @see http://php.net/manual/de/mysqli.real-escape-string.php

          Kommentar


          • #6
            Super 'GNOM42' das hat mirt sehr geholfen es zu verstehen jetzt komme ich weiter..

            Kommentar

            Lädt...
            X