Hi guys I'm quite new in php. I want to create a string of html table to later use it mpdf but in the course of constructing my table the code seems ok but no html table with data generated just the header.
Below is my code:
$html ='<div class="row">
<div class="col-lg-12">
<table width="100%" class="table table-striped table bordered">
<thead>
<tr>
<th class="text-left">Code</th>
<th class="text-left">Phone Number</th>
<th class="text-left">Delivery Date</th>
<th class="text-left">Amount HT</th>
<th class="text-left">Amount TVA</th>
<th class="text-left">Amount TTC</th>
<th class="text-left">Payment Mode</th>
</tr>
</thead >
<tbody>';
foreach($estimateArray as $item):
if(($startDate <= date_create($item->created) && date_create($item->created) <= $endDate)){
$html .= ' <tr>
<td class="text-left">'; echo $item->customer_name;'</td>
<td class="text-left">'; echo $item->document_number;'</td>
<td class="text-left">'; echo $item->delivery_date;'</td>
<td class="text-left">'; echo $item->amount_ht;'</td>
<td class="text-left">'; echo $item->amount_tva;'</td>
<td class="text-left">'; echo $item->amount_ttc;'</td>
<td class="text-left">'; echo $item->payment_mode;'</td>
</tr>';
} endforeach;
$html .= '
</tbody>
</table>
</div>
</div>
';
Please I need help.
You are using echo
instead of appending property value to $html
variable.
Try something like:
<td class="text-left">' . $item->customer_name . '</td>
Edit: It's much more clearer using variables in string this way:
$output = "<td class=\"text-left\">{$item->customer_name}</td>";
Append the values to your $html
instead of echoing.
foreach($estimateArray as $item):
if(($startDate <= date_create($item->created) && date_create($item->created) <= $endDate)){
$html .= ' <tr>
<td class="text-left">'. $item->customer_name . '</td>
<td class="text-left">'. $item->document_number . '</td>
<td class="text-left">'. $item->delivery_date.'</td>
<td class="text-left">'. $item->amount_ht.'</td>
<td class="text-left">'. $item->amount_tva.'</td>
<td class="text-left">'. $item->amount_ttc.'</td>
<td class="text-left">'. $item->payment_mode.'</td>
</tr>';
} endforeach;
Just to clarify this, try dropping in this code.
foreach($estimateArray as $item):
if(($startDate <= date_create($item->created) && date_create($item->created) <= $endDate)){
$html .= ' <tr>
<td class="text-left">'.$item->customer_name.'</td>
<td class="text-left">'.$item->document_number.'</td>
<td class="text-left">'.$item->delivery_date.'</td>
<td class="text-left">'.$item->amount_ht.'</td>
<td class="text-left">'.$item->amount_tva.'</td>
<td class="text-left">'.$item->amount_ttc.'</td>
<td class="text-left">'.$item->payment_mode.'</td>
</tr>';
} endforeach;
There are three methods I can recommend.
1. method
Close PHP code and add PHP code in HTML.
<?php
// there is PHP codes
?>
<table>
<tr>
<td><?php echo $value; ?></td>
</tr>
</table>
<?php
// continue with PHP
?>
2. method
Print HTML code with PHP.
Remember! To work with PHP values, print with double quotes ("
). Use escape character (\
) if you need to use double quotes. (Ex: class=\"demoTable\"
)
<?php
echo "
<table class='demoTable'>
<tr>
<td>$value</td>
</tr>
</table>
";
?>
3. method
Now you can use double and single quotes in your code.
<?php
$html = <<<HTML
<table class="demoTable" style="font-family: 'Open Sans';">
<tr>
<td>$value</td>
</tr>
</table>
HTML;
echo $html;
?>
来源:https://stackoverflow.com/questions/39522350/creating-html-table-php