entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

imprimir consulta SQL en PHP para procesarla en un JS

Hola a todos, resulta que quiero imprimir el query en PHP en forma de array y poder asociarlo en un js que me trae una tabla, pongo pedazo de mi codigo JS

function procesarfiltro1(filtro1){
     alert("hola"); 
   // $('#messageOK').hide();

    //var project = document.getElementById("sel_project_name").value;
    var ServiceUrl = "test.php";

alert(ServiceUrl);
   // $("#tbodyProjects tr").remove();

    var table = $('#sample_1').DataTable({
        responsive: true,
        retrieve: true
        //lengthMenu: [[50], [50]],
        //"language": {
        //    "info": ""
       // }
    });
    table.clear();
    $.ajax({
        url: ServiceUrl,

        success: function (data) {
         //   var html = "";
            $.each(data, function (i, d) {                                  

                table.row.add([d.campo1, d.campo2, d.total])

            })
            table.draw();
          //  $("#tbodyProjects").append(html);
            //$('#tblProjects').DataTable({
            //    retrieve: true,
            //    paging: false
            //});
            //$('#tbsubactivities').DataTable({
            //    responsive: true,
            //    "retrieve": true,
            //    "lengthMenu": [[50], [50]],
            //});

        },
        error: function (xhr, status, statusText) {
            alert("No matching records found ");
            // $('#messageError').show();
            console.log('An error occurred');
        }
    });
}

pero quiero hacer que mi php me traiga algo asi

{campo1: org1, campo2:pais1,total:2}

codigo:
PHP

sqlUpd="exec [OM_test].[dbo].[OM_HC_Ev]  '4','',''";
 $res=odbc_exec($connection,$sqlUpd);
//print $sqlUpd;
while(odbc_fetch_row($res)){
 /// aqui mandar a imprimir de alguna manera que llegue a lo que puse abajo
}

///
o como este otro ejemplo que encontré

var persona = [
  persona1 = {"nombre": "Luis","Edad": "32"},
  persona2 = {"nombre": "Marcos","Edad": "15"},
]

por favor si alguien me puede ayudar se los agradeceré mucho, en cuanto tenga la solución si la encuentro yo primero la traeré como siempre para compartirla, muchas gracias de antemano.

2 Respuestas

2votos

rach Puntos6010

Por si alguien lo ocupa lo hice de esta manera el php y me sale exactamente como lo necesito

<?php 
header('Content-Type: application/json');//cabecera json
include ("../conexion/connection.php");

$sqlUpd="exec [OM_test].[dbo].[OM_HC_Ev]  '4','',''";
$res=odbc_exec($connection,$sqlUpd);
$result = array(); 

while ($row = odbc_fetch_array($res))
{
 array_push($result, $row);
} 

echo json_encode($result);
?>

1voto

Peter comentado

Gracias por compartir la solución!

Saludos.

2votos

Leonardo-Tadei Puntos227320

Hola @rach,

lo que tenés que hacer es generar la salida que te hace falta en el propio script PHP...

Para tu segundo ejemplo, pero sin saber los nombre de los campos que devuelve la query, sería:

sqlUpd="exec [OM_test].[dbo].[OM_HC_Ev]  '4','',''";
 $res=odbc_exec($connection,$sqlUpd);
//print $sqlUpd;
$i=1; // contador para el nombre
// Principio del vector JS
print('var persona = [');
while(odbc_fetch_row($res)){
  $nom = $res['nombre'];
  $edad= $res['edad'];
  print("persona$i = {\"nombre\":\"$nom\",\"Edad\":\"$edad\" },");
  $i++;
}
// Fin del vector JS
print(']');

En resumen, generás el array JavaScript como si lo estuvieras escribiendo, pero programáticamente... el JS que espera la respuesta espera algo en Java Script Object Notation (JSON) y un vector es eso... luego tenés que usarlo para algo en el JavaScript, pero eso es otra cosa.

Saludos cordiales

0voto

rach comentado

muchas gracias por tu respuesta, yo seguí investigando y ya había encontrado la solución que compartí con ustedes en la parte de arriba, igual funciona trayéndome el json.. Saludos

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta