Отображение форма для заказа информация


Ниже приведен код, который я использовал для вызова API-интерфейса и отображения "статуса" результаты в веб-страницу.

enter image description here

мой старший сказал мне, что код полностью беспорядок и нужно улучшить, так что он должен быть легко понятным для других. но я не получаю как я могу выполнить рефакторинг кода ниже ? смешивание PHP и HTML код-это плохо ? мне действительно нужно смешивать эти HTML и PHP, чтобы получить результаты, которые мне нужны .пожалуйста, помогите мне для этого....

<p><button type= "button" class="call">Show Status</button></p>

    <table class="tbl-qa" border="1">
        <thead>
            <tr>    
               <th class="table-header"></th>     
               <th class="table-header">ORDERID</th>                                                      
               <th class="table-header">Status</th>                    
            </tr>
        </thead>

       <tbody id="table-body">
<?php
$tabindex = 1;

if (!empty($orderrecords))
    {
    foreach($orderrecords as $k => $v)
        { ?>

        <?php
        $hide = '';
        $data['username'] = 'admin';
        $data['password'] = 'admin123';     

        $url = 'https://plapi.ecomexpress.in/track_me/api/mawbd/?awb=awbnumber&order=' . $orderrecords[$k]["order_id"] . '&username=admin&password=admin123';
        $ch = curl_init();
        // some curl code
        $res = explode("\n", $output);
        if (!isset($res[13]))
            {
            $res[13] = null;
            }

        $status = $res[13];
?>

<tr class="table-row" id="table-row-<?php echo $orderrecords[$k]["id"]; ?>" tabindex="<?php echo $tabindex; ?>">

<td><input onclick="assignorderids('<?php echo $orderrecords[$k]["order_id"]; ?>')" type="checkbox" name="assigneeid" id="assigneeid-<?php echo $orderrecords[$k]["order_id"]; ?>" value="<?php echo $orderrecords[$k]["order_id"]; ?>"></td>

<td><?php echo $orderrecords[$k]["order_id"]; ?></td>             
<td><?php echo $status; ?></td>

</tr>


 <?php
 $tabindex++;
 }
    } ?>

    </tbody>
    </table>


149
0
задан 22 февраля 2018 в 02:02 Источник Поделиться
Комментарии
1 ответ

Я прекрасно понимаю разочарование вашего коллеги, что необходимо поддерживать этот код.

Но было бы более конструктивного сказать, что этот код является "беспорядок" в основном потому, что:


  • Логика выборки статус заказа смешивается в середине рендерингом таблиц;

  • "Грязные" форматирование: противоречивые отступы и пробелы;

То же самое может быть выражено так:

<?php
function getOrderTrackingStatus($orderId) {
$url = 'https://plapi.ecomexpress.in/track_me/api/mawbd/';
$url.= "?awb=awbnumber&order=$orderId&username=admin&password=admin123";

$ch = curl_init();
// some curl code
$res = explode("\n", $output);

$status = isset($res[13]) ? $res[13] : null;
return $status;
}
?>

<p>
<button type="button" class="call">Show Status</button>
</p>

<table class="tbl-qa" border="1">
<thead>
<tr>
<th class="table-header"></th>
<th class="table-header">ORDERID</th>
<th class="table-header">Status</th>
</tr>
</thead>

<tbody id="table-body">
<?php $tabindex = 1; ?>
<?php foreach($orderrecords as $record): ?>

<tr class="table-row"
id="table-row-<?php echo $record['id']; ?>"
tabindex="<?php echo $tabindex++; ?>">
<td>
<input type="checkbox"
name="assigneeid"
id="assigneeid-<?php echo $record['order_id']; ?>"
value="<?php echo $record['order_id']; ?>"
onclick="assignorderids('<?php echo $record['order_id']; ?>')">
</td>
<td><?php echo $orderId; ?></td>
<td><?php echo getOrderTrackingStatus($orderId); ?></td>
</tr>

<?php endforeach; ?>
</tbody>
</table>

В идеале это getOrderTrackingStatus функция будет перенесен куда-то еще, вместо того чтобы жить внутри тот же файл, который обрабатывает данные визуализации.

Надеюсь, что это помогает вам, и в зависимости от вашего проекта, вы должны рассмотреть возможность использования шаблонизатора как способ заставить себя двигаться логика кода от представления.

1
ответ дан 23 февраля 2018 в 08:02 Источник Поделиться