przycisk nie działa w pierwszym wierszu tabeli

0

Witam !
Na wstepie chciałbym zaznaczyć, że nie mam praktycznie żadnych umiejętności programistycznych.
Próbuje programować w firmie produkcyjnej jakieś proste aplikacje bazodanowe które maja za zadanie wyświetlić określony widok z bazy danych.
Poniżej wklejam kod tabeli html, w której zawarty jest formularz przesyłający do innej strony id z bazy danych po kliknięciu przycisku WIĘCEJ.
Niestety kliknięcie przycisku WIĘCEJ działa dla wszystkich wierszy poza pierwszym. Co może być przyczyną?

<div id="container1">
           <table id="example" class="display nowrap" style="width:100%">
           <thead>
           <tr>

             <th>DATA_WYS</th>
             <th>LISTA</th>
             <th>LIMIT_KOD</th>
             <th>DATA_ZAM</th>
             <th>ART</th>
             <th>NS</th>
             <th>NR_ZAM</th>
             <th>PRIORYTET</th>
             <th>UWAGA1</th>
             <th>ZAM_OPIS</th>
             <th>UWAGA2</th>
             <th>STATUS</th>
             <th>ILOSC_ZAM</th>
             <th>ILOSC_WYS</th>
             <th>POKAŻ SZCZEGÓŁY</th>
           </tr>
               </thead>

    <tbody>

           </tr>
           <?php foreach($result2 as $row2) :
             ?>
             <?php

             {if( is_null($row2['DATA_WYS']))

                 $data_wysylki = '';
                 else{
                 $data_wysylki = date('Y-m-d',strtotime($row2['DATA_WYS']));

                 }
               }

               {if( is_null($row2['DATA_DOD_ZAM']))

                   $data_zam = '';
                   else{
                   $data_zam = date('Y-m-d',strtotime($row2['DATA_DOD_ZAM']));

                   }
                 }
               $artykul = iconv("Windows-1250", "UTF-8//TRANSLIT", $row2['ART']);
               $priorytet = iconv("Windows-1250", "UTF-8//TRANSLIT", $row2['PRIORYTET']);
               $uwaga1 = iconv("Windows-1250", "UTF-8//TRANSLIT", $row2['UWAGA1']);
               $opis_zamówienia = iconv("Windows-1250", "UTF-8//TRANSLIT", $row2['ZAM_OPIS']);
               $uwaga2 = iconv("Windows-1250", "UTF-8//TRANSLIT", $row2['UWAGA2']);


             ?>

           <tr>
             <td align= "left" width= "10px"><?php echo $data_wysylki; ?></td>
             <td align= "left" width= "10px"><?php echo $row2['LISTA']; ?></td>
             <td align= "left" width= "10px"><?php echo $row2['LIMIT_KOD']; ?></td>
             <td align= "left" width= "40px"><?php echo $data_zam; ?></td>
             <td align= "left" width= "40px"><?php echo $artykul; ?></td>
             <td align= "right" width= "40px"><?php echo $row2['NS']; ?></td>
             <td align= "left" width= "40px"><?php echo $row2['NR_ZAM']; ?></td>
             <td align= "left" width= "40px"><?php echo $priorytet; ?></td>
             <td align= "left"width= "40px"><?php echo $uwaga1; ?></td>
             <td align= "left" width= "40px"><?php echo $opis_zamówienia; ?></td>
             <td align= "left" width= "40px"><?php echo $uwaga2; ?></td>
             <td align= "right" width= "40px"><?php echo $row2['STATUS']; ?></td>
             <td align= "right" width= "40px"><?php echo $row2['ILOSC_ZAM']; ?></td>
             <td align= "right" width= "40px"><?php echo $row2['ILOSC_WYS']; ?></td>


             <!-- and so on -->

             <td>
               <form action="start_control_empty_rekl.php" method="post" target ="_blank">
                 <input type="submit" class="btn-xl2" value="WIĘCEJ"></input>
                 <input type="hidden" name="ns" value="<?php echo $row2['NS']; ?>"></input>
               </form>
             </td>
           </tr>
         <?php endforeach; ?>
       </tbody>
     </table>

<script src="jquery-3.5.1.js"></script>
<script src="jquery.dataTables.min.js"></script>
<script src="dataTables.pageResize.min.js"></script>
<script>
$(document).ready(function() {
    $('#example').DataTable();
} );
     </script>
</div>
1

Co to znaczy nie działa?

0
Patryk27 napisał(a):

Co to znaczy nie działa?

Kliknięcie przycisku w pierwszym wierszu nie wywołuje żadnej reakcji w pozostałych wierszach gdy nacisnę przycisk WIĘCEJ przenosi mnie do innej strony i przesyła odpowiednie id z bazy

2

Może dla pierwszego wiersza $row2['NS'] jest puste?

Dodatkowo masz tutaj niepotrzebnie domknięte tr:

    <tbody>
           </tr>
0
Patryk27 napisał(a):

Może dla pierwszego wiersza $row2['NS'] jest puste?

Dodatkowo masz tutaj niepotrzebnie domknięte tr:

    <tbody>
           </tr>

Nie jest puste. Nawet jeśli by było to rozumiem, że formularz powinien się zatwierdzić akcja przesłania wartości powinna się wykonać ale wartość przesłana była by pusta.
Usunąłem niepotrzebny znacznik ale to nie dało efektu

3

Zacznij może od uporządkowania trochę tego kodu. Zobacz komentarze.

<?php
// za nawiasem od foreach masz dwukropek, czy oby na pewno powinien on tu byc?
foreach ($result2 as $row2) :
    ?>
    <?php //jak wyjasnisz ten dwukropek to czy trzeba tu otwierac i zamykac tagi PHP?
    {//po co ten nawias?
        if (is_null($row2['DATA_WYS']))
            $data_wysylki = '';
        else {
            $data_wysylki = date('Y-m-d', strtotime($row2['DATA_WYS']));
        }
    }//po co ten nawias?
    {//po co ten nawias?
        if (is_null($row2['DATA_DOD_ZAM']))
            $data_zam = '';
        else {
            $data_zam = date('Y-m-d', strtotime($row2['DATA_DOD_ZAM']));
        }
    }//po co ten nawias?
    $artykul = iconv("Windows-1250", "UTF-8//TRANSLIT", $row2['ART']);
    $priorytet = iconv("Windows-1250", "UTF-8//TRANSLIT", $row2['PRIORYTET']);
    $uwaga1 = iconv("Windows-1250", "UTF-8//TRANSLIT", $row2['UWAGA1']);
    // nie nazywaj zmiennych z polskimi ogonkami, żadnymi ogonkami
    $opis_zamówienia = iconv("Windows-1250", "UTF-8//TRANSLIT", $row2['ZAM_OPIS']);
    $uwaga2 = iconv("Windows-1250", "UTF-8//TRANSLIT", $row2['UWAGA2']);

Dwukropkiem chodzi mi o to, że prościej miałbyś tu otworzyć nawias. Bo składnia będzie działać i pewnie działa.

3

Znalazłem odpowiedź na stackoverflow więc ją wklejam.
Zamknąłem formularz wcześniej i dodałem atrybut do input z id formy i działają wszystkie przyciski.
Dzięki za pomoc !
Link do rozwiązania
https://stackoverflow.com/questions/5967564/form-inside-a-table?fbclid=IwAR27czUYgAJbyzNRp55zaJ6-9vIPfOGDVYyqo7lCxJJzNQ546yIokkXuEAM

  <td>
   <form action="start_control_empty_rekl.php" method="post" id = "empty_rekl" target="empty_blank"></form>
<input type="submit" class="btn-xl2" value="WIĘCEJ" form="empty_rekl">
<input type="hidden" name="ns" form="empty_rekl" value="<?php echo $row2['NS']; ?>"></input>
</td>

1 użytkowników online, w tym zalogowanych: 0, gości: 1