Conversor de ptr a bs

  • Autor Autor yoclens
  • Fecha de inicio Fecha de inicio
yoclens

yoclens

Gamma
Diseñador
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Estoy tratando de mostrar un conversor de ptr a bs en tiempo real, pero no logro hacer que funcione, en la primera tabla se debe mostrar la conversión en 1 ptr = equivalente a bs y en la segunta tabla solo debo anexarle el valor a bs pues ya le ingreso los montos en ptr anexo la documentación de la api.

api: https://www.petro.gob.ve/es/desarrollo/


PHP:
<!-- consultar registros -->
<div class="container">


    <div class="row">
       <div class="card cyan darken-3">
              <div class="card-tabs">
                <ul class="tabs tabs-fixed-width tabs-transparent">
                  <li class="tab"><a class="active">Precio del Petro</a></li>
                </ul>
              </div>

                     <div class="card-content white">
                     <div id="test1" class="center-align light">



<table>
        <thead>
          <tr>
              <th>PRT</th>
              <th>BSD</th>
              
          </tr>
        </thead>


        <tbody id='tabla'>
          <tr>
            
            <td><?php echo $conv; ?></td>
            <td><?php echo $conv2; ?></td>
          
<td>



</td>

</tr>
</tbody>
</table>




                </div>
            </div>


              </div> 
        </div>
</div>



<!-- consultar registros -->
<div class="container">


    <div class="row">
       <div class="card cyan darken-3">
              <div class="card-tabs">
                <ul class="tabs tabs-fixed-width tabs-transparent">
                  <li class="tab"><a class="active">Listado General</a></li>
                </ul>
              </div>

                     <div class="card-content white">
                     <div id="test1" class="center-align light">



<table>
        <thead>
          <tr>
              <th>TIPO DE DOCUMENTO</th>
              <th>MONTO PTR</th>
              <th>MONTO BSD</th>
          </tr>
        </thead>



<?php
$consulta = $DB_con->query("SELECT * FROM conversor_petro_bsd ORDER BY id_documento;");
if($consulta->rowCount() > 0){
$i=1;
 ?>

<?php

while ($linea = $consulta->fetch(PDO::FETCH_ASSOC)) {

?>
        <tbody id='tabla'>
          <tr>
            
            <td><?php echo $linea['documento']; ?></td>
            <td><?php echo $linea['monto_petro']; ?> PTR</td>
            <td><?php echo $conv2; ?> BSD</td>
          
<td>



</td>

</tr>
</tbody>

<?php

$i++;
}
}

else
echo "<div class='col s12 card-panel yellow darken-2 center'>
<h5 class='black-text text-darken-2 center CONDENSED LIGHT5'>
¡ Advertencia: No se ha encontrado ningún registro !
</h5>
</div>";
echo "</table>";
?>



                </div>
            </div>


CONVERSOR

PHP:
<?php
      $url = "https://petroapp-price.petro.gob.ve/price/";
      $json = file_get_contents($url);
      $datos = json_decode($json, true);



      $conv = $datos ["PTR"];
      $conv2 = $datos ["BS"];

      echo $conv;

?>
 
Para crear un conversor en tiempo real, deberías utilizar JavaScript y AJAX para obtener los datos de la API de forma asíncrona, sin tener que recargar la página. Te sugiero seguir estos pasos:

1. Crea un elemento input donde el usuario pueda ingresar la cantidad de ptr a convertir a bsd.

2. Crea una función JavaScript que se ejecute cada vez que el valor de este input se modifique.

3. Dentro de la función anterior, utiliza la función getJSON de jQuery o axios en JavaScript puro para obtener los datos de la API.

4. Utiliza una fórmula matemática para convertir los datos de la API de ptr a bsd.

5. Actualiza el valor de un elemento HTML en la página con el resultado de la conversión.

Aquí te dejo un ejemplo de cómo podría verse el código de la función en jQuery:



JavaScript:
$(document).ready(function() {
    $('#input-ptr').on('change', function() {
        var ptr = $(this).val();
        $.getJSON('https://petroapp-price.petro.gob.ve/price/', function(data) {
            var conv = Number(ptr) * Number(data['bsd'] / data['ptr']);
            $('#result-bsd').text(conv.toFixed(2));
        });
    });
});


Este código escucha un evento "change" en un input con el ID #input-ptr, obtiene los datos de la API utilizando getJSON de jQuery, aplica la conversión y muestra el resultado en un elemento HTML con el ID #result-bsd.

Es importante que incluyas la librería de jQuery en tu página para que este código funcione. También es posible utilizar XMLHttpRequest en JavaScript puro para realizar la petición AJAX en lugar de getJSON de jQuery.
 
Atrás
Arriba