Comunidad de diseño web y desarrollo en internet online

Llamada AJAX desde array php + mysql

Citar            
MensajeEscrito el 05 Abr 2017 07:54 pm
Hola a todos!
Consulto lo siguiente:
Tengo un array que traigo desde una DDBB donde pretendo mostrar otra data en un DIV al hacer click en cada resultado.
Los resultados los veo perfecto, pero al hacer click en ellos, solo muestra los datos del primero en el DIV.
Aqui dejo el codigo.
Alguna sugerencia?
Muchas gracias de antemano.

Código PHP :

<head>

<?php 

include ("includes/conexion.php");
?>

<script src="js/jquery2.0.3.min.js"></script>

<script type="text/javascript">

$(document).ready(function(){

       $("#ped-pendiente").click(function(){ 

             var idpedido = $("#idpedido").val();

             $.ajax({
                 type: "GET",
                 url: "traf-detallespedido.php?idped="+ idpedido, 
                 success: function(data){
                              $("#detallesdepedido") .html(data) 
                 },
                error: function(data){
                            $("#detallesdepedido") .html(data) 
               }
            }); 
});
});

 
</script>

</head>
<body>
<div>
<?php

$resultPendientes = mysql_query("SELECT pedidos.id_pedido, pedidos.id_pedido_trafico, pedidos.id_cliente, pedidos.id_sucursal, pedidos.id_interno, pedidos.solicitante, pedidos.numref, pedidos.fechallamado, pedidos.horallamado, pedidos.fechaservicio, pedidos.horaservicio, pedidos.demora, pedidos.pedido_descripcion, pedidos.tiposervicio, pedidos.direccion, pedidos.telefono, pedidos.localidad, pedidos.estado, clientes.razonsocial
                  FROM pedidos
                  INNER JOIN clientes ON clientes.id_cliente = pedidos.id_cliente
                  WHERE pedidos.estado = 'PENDIENTE' ORDER BY pedidos.id_pedido DESC  
                  "); 
         if ($rowPendientes = mysql_fetch_array($resultPendientes)){ 
         do { 
         


         echo '<a id="ped-pendiente" style="cursor:pointer;">';
         echo '<strong>N&ordm;</strong><input type="hidden" value="'.$rowPendientes["id_pedido_trafico"].'" id="idpedido">'.$rowPendientes["id_pedido_trafico"].'<br>';
         echo '<strong>Hora:</strong> '.$rowPendientes["horaservicio"].'<br>';
         echo '<strong>Cliente:</strong> '.$rowPendientes["id_cliente"].' - '.$rowPendientes["razonsocial"].'<br>';
         echo '<strong>Direcci&oacute;n:</strong> '.$rowPendientes["direccion"].'<br>';   
         echo '<strong>Solicitante:</strong> '.$rowPendientes["solicitante"].'<br>';
         echo '</a>';

         }
         while ($rowPendientes = mysql_fetch_array($resultPendientes)); 
         } else { 
         echo 'No hay Pedidos Pendientes.'; 
         }

?>

</div>

<div id="detallesdepedido">

</div>
</body>

Por mathiasc

1 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 06 Abr 2017 12:36 am
yo esto lo soluciono de mediante esta funcion ajax que cree , con :

Código Javascript :

//a estas funciones que cree les digo las triadas ajax 
window['xhr']=function(){if(window['XMLHttpRequest']){return new XMLHttpRequest();}else if(window['ActiveXObject']){return new ActiveXObject('Microsoft.XMLHTTP');}}
window['ajx']=function(u,I,R){H=xhr();
   if(R=='@'){
      H.open('GET',u, false);H.send();return H.responseText;
   
   }else{
      if(H){
         H['onreadystatechange']=function(){rrt(R);};
         H['open']('POST',u,true);
         if(arguments[3]=='text'){
            H['overrideMimeType']('text/plain','charset=x-user-defined');
         }
         H['setRequestHeader']('Content-Type','application/x-www-form-urlencoded');
         H['send'](I);
      }
   }
}
window['rrt']=function(a){if(H['readyState']==4){if(H['status']==200){if(a!=null){a(H['responseText']);}}}}
//hasta aqui esto me sirve como bibliografia jejje
//por lo que la unica que debo usar es ajx por lo que 
//supongamos que tenemos una array que enviar y que este es AA
var string1=JSON.stringify(AA);
boton.onclick=function(){ajx('http://esteesel.php','variableenvioporpartedelusuario='+string1,wqez);}

window['wqez']=function(...a){
var j=a[0];//este es el echo que me enviara http://esteesel.php
//aqui dentro pongo todos aquellos cambios que quiero realizar en el html de acuerdo con lo que //sea la variale j, supongamos que es una string que ha sido pasada por json
//en ese caso queremos obtener un array
var array_enviado=JSON.parse(j);

}


//


Código PHP :

<?php
//este php es el esteesel.php
$array=json_decode($_POST['variableenvioporpartedelusuario']);
//aqui hago lo que necesito 
//i supongamos que deducimos un resultado $array_resultado

echo json_encode($array_resultado); //este resultado es el que recojera la funcion wqez como //primer argumento es decir arguments[0];



si hay algun tipo de caracter raro tambien puedes utilizar base64_decode base64_encode en php que equivale mas omenos a atob btoa con algun matiz diferente que soluciona w3.org con

Código :

function b64e(str) {return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g,function(match,p){return String.fromCharCode('0x'+p);}));}//codifica a base64 compatible con php

function b64d(str) {return decodeURIComponent(atob(str).split('').map(function(c){return '%'+('00'+c.charCodeAt(0).toString(16)).slice(-2);}).join(''));}//decodifica base64 compatible con php




luego si el cambio de variables quieres encriptar con clave yo suelo utilizar blowfish pero esto ya es irme por las ramas jajaja.

Por aukun

Claber

200 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 13 Abr 2017 01:30 am
En respuesta a mensaje privado-->
a ver te explico la teoria conceptos AJAX porque creo que es un problema de comprension no de error:

AJAX.url -> es la url que envia tu script donde recogera las variables si son variables GET se encontraran en la url (mas limitados), si son variables POST se encuentran en los HEADERS que podras visualizar en las cabeceras que encontraras en el desarollo web del browser (para que veas que es lo que envias y por donde lo envias aproximadamente, jejeje no es realmente asi pero por ahi puedes ver algo).

PHP ->$_POST['v'] o $_GET['c']

Cuando hacemos una peticion ajax , añadimos el evento onreadystatechange este evento se encendera por decirlo de alguna manera cada vez que se detecte un readystate diferente es decir un cambio i lo que le decimos es que cuando el estado de la peticion lo identifique como completo es decir ----> 'readyState'==4 'status'==200 que quiere decir que se ha pillado la respuesta por parte del servidor correctamente pues cuando sucede eso entonces responseText ya existe que no es nada mas ni nada menos que el echo que envia el php -> lo que pasa es que antes no existia pero el script ha detectado cuando existe por lo que ya lo puede añadir dentro del html de manera que cogemos la respuesta i alli en funcion de esa respuesta modificamos nuestro html por ejemplo ObjetoElemento('id_pedido').textContent=Objeto.responseText;

Problema de esto bien pues que ese cambio siempre debe estar hecho dentro de evento onreadystatechange, para hacerlo mas labil con lo que yo te puse puedo asociar una funcion que se encuentra fuera de ese evento ajax, realmente siempre estara dentro del evento la funcion que me provoca los cambios a mi html, pero de esta manera puedo reutilizar las triadas ajax (jajaja lo llamo asi) con diferentes funciones en diferentes posiciones de mi script sin tener que ponerlas obligariamente dentro de la funcion ajax. No se si me explico bien. Apartir de hay colores, porque tipos de respuestas bueno la ostia, en cierta forma solo hay una que es textoplano lo que pasa es que esta tecnologia te lo puede splitear a array de manera JSON ... o en formato bytes .... Si parto de texto plano y eso ya sean recibidos o enviados los modifico como quiero ya sea en php o javascript y asi sabes exactamente lo que sucede. Siempre hay que probar con codigo sencillo para ver lo que se envia i recibe i cunado te salga lo que quieres luego lo complicas mazo.

Por aukun

Claber

200 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.