#php #html #css #opencart
#php #HTML #css #opencart
Вопрос:
Я хочу отправить идентификатор по форме в цикле foreach, но когда я нажимаю на каждую кнопку, она отправляет мне первую форму.
Это означает, что когда я нажимаю на вторую кнопку, она отправляет мне значение первой формы, значение input hidden является правильным, но первое значение каждый раз отправляется.
<?PHP
if ($transactions) {
foreach ($transactions as $transaction) {
?>
<td class="text-left">
<?php echo $transaction['invoice_id']; ?>
</td>
<td class="text-left">
<?php echo $transaction['invoice_type']; ?>
</td>
<td class="text-left">
<?php echo $transaction['ref_id']; ?>
</td>
<td class="text-left">
<?php echo $transaction['gateway']; ?>
</td>
<td class="text-left">
<?php echo $transaction['payment_date']; ?>
</td>
<td class="text-right">
<?php
if($transaction['payment_status'] == 'not paid') {
?>
<form
method="POST"
action="<?php echo $gate_url; ?>"
>
<input type="hidden" name="invoiceId" value="<?php echo $transaction['invoice_id']; ?>">
<button class="btn btn-md btn-primary" type="submit" >
<?php echo $pay; ?>
</button>
</form>
<?php
}
?>
</td>
<?php
}
Комментарии:
1. Не могли бы вы попробовать изменить значение
type="hidden"
totype="text"
, чтобы подтвердить, какие значения вы видите? Код мне кажется хорошим. Вы также можете попытаться отладить часть, которая получает значение для ошибок, а не только форму. Кроме того, не могли бы вы подтвердить, что этот код<td class="text-left"> <?php echo $transaction['invoice_id']; ?> </td>
возвращает другой идентификатор счета в каждом цикле?2. @KodeFor.Me : спасибо, что исправили этот вопрос здесь. Однако мне интересно, был ли код настолько существенно переформатирован, что это могло бы замаскировать проблему, которая уже существовала. В общем, возможно, стоит оставить код как есть, если он не настолько плохо отформатирован, что его невозможно прочитать.
3. @halfer привет и спасибо за ваши комментарии. Очевидно, что код был нечитаемым, и это было целью его переформатирования. По крайней мере, с моей точки зрения, невозможно помочь кому-либо, когда код не в хорошем состоянии для чтения, и я также не могу прочитать код из нескольких строк всего за 2-3 строки с горизонтальной прокруткой 🙂
4. вы пробовали значение имени, помещенное в массив
name="invoiceId[]"
?
Ответ №1:
У вас есть массив значений, так что это:
<input type="hidden" name="invoiceId" value="<?php echo $transaction['invoice_id']; ?>">
заменить на:
<input type="hidden" name="invoiceId[]" value="<?php echo $transaction['invoice_id']; ?>">