我有一個問題,制作一個小腳本來跟蹤 Internet 上的資料包。
它作業正常,問題是在客戶端發送其指南編號之前,表格已經顯示(空),一旦指南被放置,從 API 中提取的資料已經出現。
有沒有辦法只要不按下發送按鈕并且有回應,表格就不會被看到?
我希望它們僅在您已經有要顯示的資料時出現。
網站的代碼是這樣的:
<body>
<div class="container">
<div class="row">
<div class="col-sm-8 col-sm-offset-2 col-md-6 col-md-offset-3">
<div class="panel-body">
<div class="form-container">
<div id="messages"></div>
<form action="" method="post" enctype="multipart/form-data" accept-charset="UTF-8" id="form-app">
<fieldset class="row">
<!-- Heading -->
<div class="col-xs-12">
<h3 class="legend">Rastreo de Paquetes</h3>
</div>
<!-- Select List -->
<div class="col-xs-12">
<div class="form-group required-control">
<label class="control-label" for="carrier">Paquetería</label>
<select id="carrier" name="carrier" data-alias="" class="form-control" required >
<option value="UPS" >UPS</option>
<option value="Redpack" >Redpack</option>
<option value="Estafeta" >Estafeta</option>
<option value="DHL" >DHL</option>
<option value="99 Minutos" >99 Minutos</option>
<option value="FedEx" >FedEx</option>
<option value="iVoy" >iVoy</option>
</select>
</div>
</div>
<!-- Number -->
<div class="col-xs-12">
<div class="form-group required-control">
<label class="control-label" for="number">Número de guía o ID de Envío</label>
<input type="text" id="shipment" name="shipment" value="" data-alias="" data-integer-only="true" class="form-control" required>
</div>
</div>
<!-- Button -->
<div class="col-xs-12">
<div class="form-action">
<button type="submit" id="button_1" name="button_1" class="btn btn-primary">Enviar</button>
</div>
</div>
</fieldset>
<div class="" style="display:none"><label class="control-label" for="_email">Disculpe, pero deje este campo en blanco</label><input type="text" id="_email" class="form-control" name="_email"></div> </form>
<div id="respuesta"></div>
<?php
include_once "key.php";
$shipment_number=$_POST["shipment"];
$carrier=$_POST["carrier"];
$params = array(
"api_key" => $API_KEY,
"carrier" => $carrier,
"shipment_number" => $shipment_number
);
$headers = array(
"api_key=".$API_KEY
);
curl_setopt_array($ch = curl_init(), array(
CURLOPT_URL => "https://envios.corporativomarva.mx/api/v1/trackings",
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => http_build_query($params),
CURLOPT_RETURNTRANSFER => 1
));
$response = curl_exec($ch);
curl_close($ch);
$respuesta = json_decode($response);
//Show the response on HTML format with tables
echo "<table border='1'>";
echo "<tr><td>Estado del Envío</td><td>".$respuesta->shipment_status."</td></tr>";
echo "<tr><td>Evento</td><td>".$respuesta->event_description."</td></tr>";
echo "<tr><td>Guía</td><td>".$respuesta->carrier_tracking_number."</td></tr>";
echo "<tr><td>ID de Envio</td><td>".$respuesta->enviaya_shipment_number."</td></tr>";
echo "<tr><td>Fecha de envio</td><td>".$respuesta->pickup_date."</td></tr>";
//Show checkpoints data in a table
echo "<tr><td colspan='2'><table border='1'>";
echo "<tr><td>Checkpoint</td><td>Fecha</td><td>Código</td><td>Descripción</td><td>Ciudad</td><td>Estado</td><td>País</td><td>Comentarios</td></tr>";
foreach($respuesta->checkpoints as $checkpoint){
echo "<tr><td>".$checkpoint->description."</td><td>".$checkpoint->date."</td><td>".$checkpoint->code."</td><td>".$checkpoint->description."</td><td>".$checkpoint->city."</td><td>".$checkpoint->state."</td><td>".$checkpoint->country."</td><td>".$checkpoint->comments."</td></tr>";
}
echo "</table></td></tr>";
echo "</table>";
?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
以前我用一個單獨的檔案處理它,以便進行 api 查詢,但它向我顯示了一個只有表格的空白頁面,它看起來非常難看我希望它在客戶將其指南僅放在下面的同一頁面上看到并且這就是我想出來的,只是我不認為表格會一直顯示。
uj5u.com熱心網友回復:
一個簡單的if陳述句來檢查 POST 是否已設定——然后構建你的表......:
<?php
if (isset($_POST["carrier"])) {
include_once "key.php";
$shipment_number = $_POST["shipment"];
$carrier = $_POST["carrier"];
$params = array(
"api_key" => $API_KEY,
"carrier" => $carrier,
"shipment_number" => $shipment_number
);
$headers = array(
"api_key=" . $API_KEY
);
curl_setopt_array($ch = curl_init(), array(
CURLOPT_URL => "https://envios.corporativomarva.mx/api/v1/trackings",
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => http_build_query($params),
CURLOPT_RETURNTRANSFER => 1
));
$response = curl_exec($ch);
curl_close($ch);
$respuesta = json_decode($response);
//Show the response on HTML format with tables
echo "<table border='1'>";
echo "<tr><td>Estado del Envío</td><td>" . $respuesta->shipment_status . "</td></tr>";
echo "<tr><td>Evento</td><td>" . $respuesta->event_description . "</td></tr>";
echo "<tr><td>Guía</td><td>" . $respuesta->carrier_tracking_number . "</td></tr>";
echo "<tr><td>ID de Envio</td><td>" . $respuesta->enviaya_shipment_number . "</td></tr>";
echo "<tr><td>Fecha de envio</td><td>" . $respuesta->pickup_date . "</td></tr>";
//Show checkpoints data in a table
echo "<tr><td colspan='2'><table border='1'>";
echo "<tr><td>Checkpoint</td><td>Fecha</td><td>Código</td><td>Descripción</td><td>Ciudad</td><td>Estado</td><td>País</td><td>Comentarios</td></tr>";
foreach ($respuesta->checkpoints as $checkpoint) {
echo "<tr><td>" . $checkpoint->description . "</td><td>" . $checkpoint->date . "</td><td>" . $checkpoint->code . "</td><td>" . $checkpoint->description . "</td><td>" . $checkpoint->city . "</td><td>" . $checkpoint->state . "</td><td>" . $checkpoint->country . "</td><td>" . $checkpoint->comments . "</td></tr>";
}
echo "</table></td></tr>";
echo "</table>";
}
?>
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/403876.html
標籤:
