我有一个表,它使用FOREACH LOOP
从数据库中循环其值。当我在第一个循环内的另一个IF ELSE STATEMENT
中插入FOREACH LOOP
时,第一个循环似乎没问题,td
开始不再对齐。这意味着如果该值为空,则它将隐藏该单元格,而第一个循环中的其他值将被向前推送。
为供您参考,我正在使用SQL
和MYSQL
的不同服务器数据库。 SQL是我的主要数据库,而mysql用于插入,更新和删除表中称为“ NOTES”的文本区域。
这是我的控制器发出的查询
$getNote1 = DB::connection('mysql')->table('note1')->select('stockcode', 'note')->orderBy('stockcode', 'ASC')->get();
$getNote2 = DB::connection('mysql')->table('note2')->select('stockcode', 'note')->orderBy('stockcode', 'ASC')->get();
$getNote3 = DB::connection('mysql')->table('note3')->select('stockcode', 'note')->orderBy('stockcode', 'ASC')->get();
$getNote4 = DB::connection('mysql')->table('note4')->select('stockcode', 'note')->orderBy('stockcode', 'ASC')->get();
return view('posts.index')->with('title', $title)->with('query', $query)->with('getNote1', $getNote1)->with('getNote2', $getNote2)->with('getNote3', $getNote3)->with('getNote4', $getNote4);
这是我的表格代码
<table id="table1" class="table table-bordered">
<thead>
<tr>
<th style="display:none;">Stock Code</th>
<th>Stock Name</th>
<th>Note 1</th>
<th>Note 2</th>
<th>Note 3</th>
<th>Note 4</th>
<th>Order Level</th>
<th>Qty Level</th>
<th>Balance</th>
<th>Purchase Price</th>
<th>UOM</th>
@for ($i=0; $i<=12; $i++)
<th><?php echo date('Y/m', strtotime('-'.$i.' month', strtotime($getDate)));?></th>
@endfor
</tr>
</thead>
<tbody>
<!-- Foreach loop from db -->
@foreach ($query as $val)
<?php
$stockcode = $val->StockCode;
$stockname = $val->StockName;
$currentbalance = $val->CurrentBalance;
$purchaseprice = $val->PurchasePrice;
$baseuom = $val->BaseUOM;
?>
<tr>
<td style="display:none;">{{ $val->StockCode }}</td>
<td class="text-nowrap align-middle">{{ $val->StockName }}</td>
@foreach($getNote1 as $note1)
@if($note1->stockcode == $stockcode)
<td><textarea rows="2" cols="10" name="note1" class="note1 align-middle" data-stockcode="{{ $stockcode }}" data-stockname="{{ $stockname }}">{{ $note1->note }}</textarea></td>
@else
<td><textarea rows="2" cols="10" name="note1" class="note1 align-middle" data-stockcode="{{ $stockcode }}" data-stockname="{{ $stockname }}"></textarea><td>
@endif
@endforeach
<td><textarea rows="2" cols="10" name="note2" class="note2 align-middle" data-stockcode="{{ $stockcode }}" data-stockname="{{ $stockname }}"></textarea></td>
<td><textarea rows="2" cols="10" name="note3" class="note3 align-middle" data-stockcode="{{ $stockcode }}" data-stockname="{{ $stockname }}"></textarea></td>
<td><textarea rows="2" cols="10" name="note4" class="note4 align-middle" data-stockcode="{{ $stockcode }}" data-stockname="{{ $stockname }}"></textarea></td>
<td><input type="text" id="orderlevel" class="text-right"></td>
<td><input type="text" id="qtylevel" class="text-right"></td>
<td class="text-right align-middle">{{ number_format($currentbalance, 2) }}</td>
<td class="text-right align-middle">{{ number_format($purchaseprice, 2) }}</td>
<td class="text-center align-middle">{{ $baseuom }}</td>
@for ($i=1; $i<=13; $i++)
<?php
//looping variables
$Qty = 'Qty'.$i;
$Date = 'Date'.$i;
?>
<td class="text-right align-middle">
@if($val->$Qty > 0)
<a id="viewdetails" data-toggle="modal"
data-productid="{{$val->Id}}"
data-productname="{{$val->StockName}}"
data-getdate="{{date('Y-m', strtotime($val->$Date))}}"
href="#" data-target="#dataModal">{{ number_format($val->$Qty, 2) }}</a>
@endif
</td>
@endfor
</tr>
@endforeach
<!-- End Foreach loop -->
</tbody>
</table>
答案 0 :(得分:2)
不要隐藏单元格,而是在其中放置一个空值。
<td><textarea rows="2" cols="10" name="note1" class="note1 align-middle" data-stockcode="{{ $stockcode }}" data-stockname="{{ $stockname }}">
@foreach($getNote1 as $note1)
@if($note1->stockcode == $stockcode)
{{ $note1->note }}
@endif
@endforeach
</textarea></td>
然后它会对齐