Переменная внутри form select option

Рейтинг: 0Ответов: 0Опубликовано: 10.06.2023

Выложил целиком файл. Вопрос в форме, расположенной внутри цикла и переменной $id_receipt, внутри формы если выводить она соответствует нужному заказу, а по факту нет - это видно и по результату запроса к базе данных и по алерту, который выводит реальный номер заказа.

  <?php
  include 'header.php';
  ?>
<!DOCTYPE html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
<!--
    <link rel="stylesheet" href="<?=PATH?>assets/css/bootstrap.min.css">
    <link rel="stylesheet" href="<?=PATH?>assets/css/style.css">
    <link href="<?=PATH?>assets/font/font/css/open-iconic-bootstrap.css" rel="stylesheet">
    <link href="https://fonts.googleapis.com/css2?family=Baloo+Bhai+2:wght@500&family=Lobster&display=swap" rel="stylesheet"> 
-->

    <title>Hello, world!</title>
  </head>
  <body>


<div style="height: 120px;background-color: rgb(242, 242, 242);padding-top:2%;padding-left: 10%;">
  <h2>Мой аккаунт</h2>
  <p>Приборная панель</p>
</div>
<div class="container" style="margin-top: 3%;margin-bottom: 3%">
  <div class="row">
    <div class="col-md-3">
        <div class="row">
          <div class="col-md-12">
            <div class="row">
              <div class="col-md-3">
                <img src="<?=PATH?>assets/img/user/default.png" class="rounded-circle">
              </div>
              <div class="col-md-6">
                <h5 style="margin-top: 20%;margin-left: 15%">
                  <?=$_SESSION['username'];?>
                </h5>
              </div>
            </div>
          </div>
   <div class="col-md-12" style="margin-top: 8%">
           <a href="index.php" class="custom-font"> Приборная панель</a>
          </div> 
          <hr style="width: 100%">
           <div class="col-md-12">
           <a href="pesanan.php" class="custom-font"> Список заказов на обработку </a>
          </div> 
          <hr style="width: 100%">
            <div class="col-md-12">
           <a href="detail-akun.php" class="custom-font">  Реквизиты учетной записи</a>
          </div> 
          <hr style="width: 100%">
            <div class="col-md-12">
          <a href="logout.php" class="custom-font">   Выход</a>
          </div> 
          <hr style="width: 100%">
        </div>
    </div>
    <div class="col-md-1">
      <div class="vl"></div>
    </div>
    <div class="col-md-8">
      <?php
      $data=mysqli_query($koneksi,"SELECT DISTINCT id_receipt from pesanan where status_cart=1 and status_pesanan=0");
      $cek = mysqli_num_rows($data);
      if($cek>0){
        $list_receipt = array();
        while ($row = mysqli_fetch_assoc($data)) {
             $list_receipt[] = $row;
        }
        $id_receipt=$row['id_receipt'];
        $data=mysqli_query($koneksi,"SELECT * from pembayaran where id_receipt='$id_receipt'");
        $cek=mysqli_num_rows($data);
        if($cek>0){
            $bukti_data = mysqli_fetch_array($data);
        }
        ?> 
        <h4 class="text-center">Список заказов на обработку</h4><br>
        <table class="table">
          <thead>
          <th>No.</th>
          <!--<th>ID Чека</th>-->
          <!--<th>ФИО</th>-->
          <th>Детали заказа</th>
          <th colspan="1">Действие</th>
          </thead>
          <?php
          $i=1;
            foreach ($list_receipt as $row) {
              ?>
         <tbody>
            <tr>
                <td>
                  <?=$row['id_receipt'];?>
                <td>
                  <?php
                  $id_receipt=$row['id_receipt'];
                  $data=mysqli_query($koneksi,"SELECT * from pembayaran where id_receipt='$id_receipt'");
                  $cek=mysqli_num_rows($data);
                  if($cek>0){
                    $bukti_data = mysqli_fetch_array($data);
                    ?>

                  <!-- Button trigger modal --><?php }
                 /* print_r ("Button trigger modal") */;?>
<!--<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#buktiTransfer<?=$i?>">
 Видеть
</button>-->

<!-- Modal -->
<!--<div class="modal fade" id="buktiTransfer<?=$i?>" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalLabel">Подтверждение Перевода</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
       <div class="row">
         <div class="col-md-3">
           Дата
         </div>
         <div class="col-md-1">:</div>
         <div class="col-md-8">
           <?=$bukti_data['tanggal']?>
         </div><hr style="width: 90%">
          <div class="col-md-3">
           ФИО
         </div>
         <div class="col-md-1">:</div>
         <div class="col-md-8">
           <?=$bukti_data['nama_pembayar']?>
         </div><hr style="width: 90%">
          <div class="col-md-3">
           Общая сумма платежа
         </div>
         <div class="col-md-1">:</div>
         <div class="col-md-8">
           <?=$bukti_data['total_pembayaran']?>
         </div><hr style="width: 90%">
          <div class="col-md-3">
           Адрес доставки
         </div>
         <div class="col-md-1">:</div>
         <div class="col-md-8">
           <?=$bukti_data['bank']?>
         </div><hr style="width: 90%">
          <div class="col-md-3">
           Записи
         </div>
         <div class="col-md-1">:</div>
         <div class="col-md-8">
           <textarea disabled>
             <?=$bukti_data['catatan']?>
           </textarea>
         </div><hr style="width: 90%">
          <div class="col-md-3">
           Подтверждение Платежа
         </div>
         <div class="col-md-1">:</div>
         <div class="col-md-8">
           <img src="../assets/img/bukti/<?=$bukti_data['bukti_transfer']?>" class="img-thumbnail">
         </div>
       </div>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
      </div>
    </div>
  </div>
</div>
-->

                    <?
                  }
                  else{
                    echo 'Not Uploaded Yet';
                  }
                  ?>
                <!--</td>
                <td>-->
                  <!-- Button trigger modal -->
<button type="button" class="btn btn-warning" data-toggle="modal" data-target="#detailReceipt<?=$i?>">
  Видеть
</button>

<!-- Modal -->
<div class="modal fade" id="detailReceipt<?=$i?>" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content"  style="width: 150%;margin-left: -25%;margin-top: 15%">
      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalLabel" style="margin-left: 40%">
        Список заказов
      </h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
        <?php
$data = mysqli_query($koneksi,"SELECT pesanan.jumlah, pesanan.total_harga, products.title, products.price, products.unit, user.nama, user.email, user.no_hp, user.provinsi, user.kota, pembayaran.tanggal, pembayaran.total_pembayaran, pembayaran.bank
    FROM pesanan 
        JOIN products ON products.id = pesanan.id
        JOIN user ON user.id_user = pesanan.id_user
        JOIN pembayaran ON pembayaran.id_receipt = pesanan.id_receipt
            where pesanan.id_receipt LIKE '$id_receipt'");
$list_pesanan = array();
while ($row2 = mysqli_fetch_assoc($data)) {
$list_pesanan[] = $row2;
}
$nama_pemesan=$list_pesanan[0]['nama'];
$email_pemesan=$list_pesanan[0]['email'];
$no_hp_pemesan=$list_pesanan[0]['no_hp'];
$provinsi_pemesan=$list_pesanan[0]['provinsi'];
$kota_pemesan=$list_pesanan[0]['kota'];
        ?>
        <h6>Имя клиента : <span style="color:red"> <?=$nama_pemesan?></span></h6>
        <h6>email : <span style="color:red"> <?=$email_pemesan?></span></h6>
        <h6>no_hp : <span style="color:red"> <?=$no_hp_pemesan?></span></h6>
        <h6>provinsi : <span style="color:red"> <?=$provinsi_pemesan?></span></h6>
        <h6>kota : <span style="color:red"> <?=$kota_pemesan?></span></h6>
        <h6>kota : <span style="color:red"> <?=$bukti_data['tanggal']?></span></h6><br>
        <table class="table">
          <thead class="thead-dark">
            <th>No.</th>
            <th colspan="2">наименование товара</th>
             <!-- <th>Размер</th>-->
            <th>Количество</th>
            <th>Цена</th>
            <th>Итого</th>
          </thead>
          <tbody>
            <?php
            $j=1;
            $sum=0;
            foreach ($data as $row2) {
              ?>
              <tr>
                <td><?=$j?></td>
                <td colspan="2"><?=$row2['title']?></td>
                <td><?=$row2['jumlah']?></td>
                <td><?=$row2['price']?></td>
                <td><?=$row2['total_harga']?></td>
              </tr>
              <?php
           $sum=($row2['total_harga']+@$dostavkaP);
            $j++;
            }
            ?>
            <tr>
                    <td colspan="6">
                        <?php 
                        $bank=$row2['bank'];
                        @$pdostavka = explode(":", $bank);
                        $dostavkaV = $pdostavka[1];
                        $dostavkaP = $pdostavka[0];
                        /*$sum=($row2['total_harga']+$dostavkaP);*/
                        ?>
                        <p><b>Всего (с доставкой <?=$dostavkaP?>р. <?=$dostavkaV?>) общая сумма платежа: <?=$row2['total_pembayaran']?> р.</b><p>
                    </td>

            </tr>
          </tbody>
        </table>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
      </div>
    </div>
  </div>
</div>
                </td>
                <td>
                  <form method="post" action="" style="display:inline-block">
                    <input type="hidden" name="id_receipt" value="">
                    <select name="opsi" <!--class="form-control"--> >
                      <option value="selesai">
                        Сделано<?=$id_receipt?>
                      </option>
                      <option value="hapus">
                        Удалить<?=$id_receipt?>
                      </option>
                    </select>
                    <button type="submit" name="submit_opsi" class="btn btn-success" style="margin-top:1%">Submit</button>
                    <?php @$id_receiptt=$id_receipt?>
                  </form>
                </td>
              </tr>
              <?php
            $i++;
            }
          ?>
          </tbody>
        </table>

        <?php
      }
      else{
        ?>
      <p>No order need to process yet. 
      </p>
        <?php
     }
      ?>

    </div>
  </div>
</div>

<?php
include '../footer.php';
?>
<!--<script src="<?=PATH?>assets/js/jquery-3.4.1.min.js" type="text/javascript"></script>
<script src="<?=PATH?>assets/js/bootstrap.min.js" type="text/javascript"></script>-->
  </body>
</html>

<?php
if(isset($_POST['submit_opsi'])){
  $opsi=$_POST['opsi'];
    //@$id_receiptt=($_POST['id_receipt']);
  /*$selesai=$_POST['selesai'];
  $hapus=$_POST['hapus'];*/
  if($opsi=='selesai'){
    mysqli_query($koneksi,"UPDATE pesanan SET status_pesanan=1 WHERE id_receipt='$id_receiptt'");
    echo '<script>alert('.($id_receiptt).');alert("Berhasil update!");window.location.replace("pesanan.php"); </script>';
  }
  elseif($opsi=='hapus'){
    $data=mysqli_query($koneksi,"SELECT pesanan.id as id, pesanan.jumlah as jumlah, products.stok as stok
    from pesanan 
        JOIN products ON products.id = pesanan.id
            where pesanan.id_receipt LIKE '$id_receiptt'");
    $list_produk = array();
    while ($row = mysqli_fetch_assoc($data)) {
        $list_produk[] = $row;
    }
    foreach ($list_produk as $row) {
        $avail_stok=$row['stok']+$row['jumlah'];
        $id_produk=$row['id'];
      
        mysqli_query($koneksi,"UPDATE products set stok='$avail_stok' where id='$id_produk'");  
    }
    mysqli_query($koneksi,"DELETE FROM pesanan WHERE pesanan.id_receipt LIKE '$id_receiptt'");  
    echo '<script>var x = "Berhasil menghapus!";alert('.($id_receiptt).');alert(x);window.location.replace("pesanan.php"); </script>';
    
  }
}
?>

Соответственно id_receipt в данной строчке таблицы один и тот же, чтобы убедится воткнул его <?=$id_receipt?> везде, где можно - и на странице он отображается как надо. Но при обработке формы id_receipt он его берет из самой нижней строчки, т.е. если в таблице есть заказы 1, 2, 3, 4, 5 то форма обрабатывает всегда 5-й.

Вопрос в том как правильно указать переменную внутри option или присвоить значение новой переменной, которая не будет изменятся при итерации цикла. Обработка формы (расположена в самом низу страницы). Конкретизирую проблему: внутри формы значение $id_receipt - то которое нужно, а при выводе alert('.($id_receipt).') получается то, которое в реальности.

Ответы

Ответов пока нет.