Я хочу создать код, который может использовать if else if
внутри строки таблицы.
Но я не могу этого сделать, как только я использую оператор else if
внутри строки таблицы, он сам создает новую строку.
Я ожидаю, что он создаст новый столбец в той же строке
Вот код
<tbody>
<?php $i = 1;
$varpetugas = null;
$varrealisasi = null;
?>
<?php foreach ($petugas as $k) : ?>
<tr>
<?php if ($k['nama_petugas'] != $varpetugas) : ?>
<th scope = "row"><?= $i++; ?></th>
<td><?= $k['jenis_survey']; ?></td>
<td>
<?= $k['nama_petugas']; ?>
<?php $varpetugas = $k['nama_petugas']; ?></td>
<td><?= $k['target']; ?></td>
<td><?= $k['realisasi']; ?></td>
<?php $varrealisasi = $k['realisasi']; ?>
<?php elseif ($k['nama_petugas'] == $varpetugas) : ?>
<td>
<?= $k['target']; ?>
</td>
<td>
<?= $k['realisasi']; ?>
</td>
<?php $varrealisasi = $k['realisasi']; ?>
<?php $varpetugas = $k['nama_petugas']; ?>
<?php endif; ?>
</tr>
<?php endforeach; ?>
</tbody>
как вы можете видеть, я ожидал, что оператор else if
покажет результат в той же строке, но вот результат
Вы делаете новую строку (<tr>
) каждый раз, когда выполняете цикл (следующая строка после foreach
).
Но вы хотите, чтобы он был только тогда, когда условие (<?php if ($k['nama_petugas'] != $varpetugas) : ?>
) истинно.
Попробуй это:
<?php foreach ($petugas as $k) : ?>
<?php if ($k['nama_petugas'] != $varpetugas) : ?>
<?php if ($i > 1) : ?>
</tr>
<?php endif; ?>
<tr>
<th scope = "row"><?= $i++; ?></th>
<td><?= $k['jenis_survey']; ?></td>
<td>
<?= $k['nama_petugas']; ?>
<?php $varpetugas = $k['nama_petugas']; ?></td>
<td><?= $k['target']; ?></td>
<td><?= $k['realisasi']; ?></td>
<?php $varrealisasi = $k['realisasi']; ?>
<?php elseif ($k['nama_petugas'] == $varpetugas) : ?>
<td>
<?= $k['target']; ?>
</td>
<td>
<?= $k['realisasi']; ?>
</td>
<?php $varrealisasi = $k['realisasi']; ?>
<?php $varpetugas = $k['nama_petugas']; ?>
<?php endif; ?>
<?php endforeach; ?>
<?php if ($i > 1) : ?>
</tr>
<?php endif; ?>
PS: Зачем тебе elseif
? Вы можете просто сделать только else
. Не так ли?
это сработало. насчет else, если я действительно могу использовать else, но я хочу сделать еще один else if с другим условием для каждого столбца. Я застрял, когда хочу сделать условие внутри строки таблицы, поэтому я сделал пример, чтобы сделать это. спасибо, вы очень помогли.
предварительно нормализовать ваши данные / массив, поэтому вам нужно только выполнить foreach по каждой строке