Creating html table php

2019-03-06 11:30发布

问题:

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


标签: php html mpdf