Creating html table php

倾然丶 夕夏残阳落幕 提交于 2019-12-02 16:48:11

问题


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.


回答1:


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>";



回答2:


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;



回答3:


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;



回答4:


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

Use PHP heredoc or nowdoc.

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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!