Переменная внутри form select option
Выложил целиком файл. Вопрос в форме, расположенной внутри цикла и переменной $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">×</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">×</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).')
получается то, которое в реальности.