Foros del Web » Programando para Internet » Javascript »

mostrar un listado php con ajax

Estas en el tema de mostrar un listado php con ajax en el foro de Javascript en Foros del Web. buenas... tengo un listado que hago en php que muestra una tabla de una base de datos sql. Previamente, logre insertar datos en la bd ...
  #1 (permalink)  
Antiguo 09/10/2012, 13:52
Avatar de maximendez88  
Fecha de Ingreso: septiembre-2012
Ubicación: Montevideo
Mensajes: 131
Antigüedad: 12 años, 2 meses
Puntos: 3
Exclamación mostrar un listado php con ajax

buenas... tengo un listado que hago en php que muestra una tabla de una base de datos sql. Previamente, logre insertar datos en la bd mediante ajax sin refrescar el navegador... El problema esta en que ahora tambien quiero mostrar los datos que voy insertando en la bd... sin refrescar el navegador en una tabla con ajax... espero que alguien me de una mano... dejo mi codigo....


este es mi listado php

Código HTML:
 <?php
include "config.php";


$nombrecir=$_SESSION['namecirc'];

  $query = "SELECT city FROM `sites` WHERE nombreCirc='".$nombrecir."'";
  
  
  
  $result = mysql_query($query);
  $numero = 0;
  while($row = mysql_fetch_array($result))
  {
    echo "<td width=\"25%\"><font face=\"verdana\">" . 
	    $row["city"] . "</font></td>";
    echo "<td width=\"25%\"><font face=\"verdana\">" . 
	    $row["arrival"] . "</font></td>";
    echo "<td width=\"25%\"><font face=\"verdana\">" . 
	    $row["departure"] . "</font></td>";
    echo "<td width=\"25%\"><font face=\"verdana\">" . 
	    $row["comment"]. "</font></td>";    
    $numero++;
  }
  echo "<tr><td colspan=\"15\"><font face=\"verdana\"><b>Número: " . $numero . 
      "</b></font></td></tr>";
  
  mysql_free_result($result);

?> 



y este es el ajax que utlizo previamente para insertar datos en la bd

Código HTML:

	
function objetoAjax(){
 var xmlhttp=false;
 try {
  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
 } catch (e) {
  try {
   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (E) {
   xmlhttp = false;
  }
 }
 if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  xmlhttp = new XMLHttpRequest();
 }
 return xmlhttp;
}

	



	
	
   function save() {
      
       
    
	   

	
	
 ajax=objetoAjax();



 ajax.onreadystatechange=function() {
  if (ajax.readyState==4) {
 

alert("se introdujo con exito en la base de datos");

ajax.open
 
 
 
  }
 }
 
 
 
 var cityvalue=encodeURIComponent(document.getElementById('city').value)
var arrivalvalue=encodeURIComponent(document.getElementById('datepicker_value').value)
var departurevalue=encodeURIComponent(document.getElementById('otrodatepicker_value').value)
var commentvalue=encodeURIComponent(document.getElementById('comment').value)


 
if(arrivalvalue>departurevalue)
{
	alert('Day of arrival can not be after a day of departure');
}


else if(departurevalue<arrivalvalue)
{
	alert('Day of departure can not be until the arrival day');
}

else{
 
  ajax.open("GET", "addCity.php?city="+cityvalue+"&arrival="+arrivalvalue+"&departure="+departurevalue+"&comment="+commentvalue,true);
  
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	
	
//enviando los valores
 ajax.send()
	
	 document.getElementById('savecity').disabled = true;
	    document.getElementById('more').disabled = true; 
	   document.getElementById('ciudad').value = "Select other city";
	   document.getElementById('add').disabled = false;
	   
	   document.getElementById('inner').style.display="block";
	 
	document.getElementById('datepicker_value').value='';
		 document.getElementById('otrodatepicker_value').value='';
		 document.getElementById('comment').value='';


}




 
}

   

Última edición por maximendez88; 09/10/2012 a las 13:57
  #2 (permalink)  
Antiguo 09/10/2012, 19:25
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: mostrar un listado php con ajax

crea una segunda función ajax que cargue listado.php en un div y llamala cuando hacés la confirmación de la inserción (el alert).
algo asi
http://foros.emprear.com/ajax/demo/deportes.html
fijate que la url y la capa dónde se debe de mostrar aparecen como variables, para poder hacer la script reusable

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 10/10/2012, 10:50
Avatar de maximendez88  
Fecha de Ingreso: septiembre-2012
Ubicación: Montevideo
Mensajes: 131
Antigüedad: 12 años, 2 meses
Puntos: 3
Pregunta Respuesta: mostrar un listado php con ajax

Cita:
Iniciado por emprear Ver Mensaje
crea una segunda función ajax que cargue listado.php en un div y llamala cuando hacés la confirmación de la inserción (el alert).
algo asi
[url]http://foros.emprear.com/ajax/demo/deportes.html[/url]
fijate que la url y la capa dónde se debe de mostrar aparecen como variables, para poder hacer la script reusable

Saludos

gracias por la ayuda.... en el ejemplo que me pasaste no es un listado en php lo que se le pasa por parametro... por lo que no lo entendi mucho como me podria ayudar a mi.... mi problema esta en que a mi me gustaría que el listado se muestre en el momento que se inserta en la bd....
  #4 (permalink)  
Antiguo 10/10/2012, 10:59
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 16 años, 5 meses
Puntos: 220
Respuesta: mostrar un listado php con ajax

Sencillamente te bastaría dentro de la función del onreadystatechange llamar a una nuevo ajax que te liste los datos nuevamente, claro que para esto debes validar que el readyState sea 4 y el status sea 200

Saludos
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #5 (permalink)  
Antiguo 10/10/2012, 11:23
Avatar de maximendez88  
Fecha de Ingreso: septiembre-2012
Ubicación: Montevideo
Mensajes: 131
Antigüedad: 12 años, 2 meses
Puntos: 3
Pregunta Respuesta: mostrar un listado php con ajax

Cita:
Iniciado por Dradi7 Ver Mensaje
Sencillamente te bastaría dentro de la función del onreadystatechange llamar a una nuevo ajax que te liste los datos nuevamente, claro que para esto debes validar que el readyState sea 4 y el status sea 200

Saludos


muy buena la ayuda.... ... estuve intentando hacerlo esto... el problema es que no se bien como hacer la funcion que llame al listado php.... se pasa por post? me perdi ahi...
  #6 (permalink)  
Antiguo 10/10/2012, 11:24
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: mostrar un listado php con ajax

no es más que lo que te ha dicho @Dradi7, que en definitiva es lo que te mostré en el link
Código Javascript:
Ver original
  1. if (ajax.readyState == 4){
  2.  if(ajax.status == 200) {
  3. document.getElementById(capa).innerHTML =
  4. ajax.responseText;
  5. }
  6. }

hay un ajax que hace el insert
si se agregó con éxito llamás la nueva función Ajax
esta actualiza en una capa el listado, que obviamente contendrá el nuevo registro.
En realidad es muy sencillo de entender
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #7 (permalink)  
Antiguo 10/10/2012, 11:27
Avatar de maximendez88  
Fecha de Ingreso: septiembre-2012
Ubicación: Montevideo
Mensajes: 131
Antigüedad: 12 años, 2 meses
Puntos: 3
Pregunta Respuesta: mostrar un listado php con ajax

si entiendo bien... el tema es que estoy intentando hacerlo y no logro dar con el clavo.... este es mi codigo....



Código HTML:
	
	
   function save() {
      
       
    

	   

	
	
 ajax=objetoAjax();



 ajax.onreadystatechange=function() {
  if (ajax.readyState==4) {
 

alert("se introdujo con exito en la base de datos");


 if(ajax.status==200) 
            { 
			
			
            ajaxlistar=otroObjetoAjax();
			
			
			  ajax.open("POST","circuit_actual.php",true);
  
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			
            
			
			}  

 
 
 
  }
 }
 
 
 
 var cityvalue=encodeURIComponent(document.getElementById('city').value)
var arrivalvalue=encodeURIComponent(document.getElementById('datepicker_value').value)
var departurevalue=encodeURIComponent(document.getElementById('otrodatepicker_value').value)
var commentvalue=encodeURIComponent(document.getElementById('comment').value)


 
if(arrivalvalue>departurevalue)
{
	alert('Day of arrival can not be after a day of departure');
}


else if(departurevalue<arrivalvalue)
{
	alert('Day of departure can not be until the arrival day');
}

else{
 
  ajax.open("GET", "addCity.php?city="+cityvalue+"&arrival="+arrivalvalue+"&departure="+departurevalue+"&comment="+commentvalue,true);
  
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	
	
//enviando los valores
 ajax.send()
	
	 document.getElementById('savecity').disabled = true;
	    document.getElementById('more').disabled = true; 
	   document.getElementById('ciudad').value = "Select other city";
	   document.getElementById('add').disabled = false;
	   
	   document.getElementById('inner').style.display="block";
	 
	document.getElementById('datepicker_value').value='';
		 document.getElementById('otrodatepicker_value').value='';
		 document.getElementById('comment').value='';


}




 
}

   

  #8 (permalink)  
Antiguo 10/10/2012, 11:31
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 16 años, 5 meses
Puntos: 220
Respuesta: mostrar un listado php con ajax

Primero ordenemos tu codigo porque asi no entiendo nada

Código Javascript:
Ver original
  1. function save() {
  2.  
  3.     ajax=objetoAjax();
  4.     ajax.onreadystatechange=function() {
  5.         if (ajax.readyState==4) {
  6.             alert("se introdujo con exito en la base de datos");
  7.             if(ajax.status==200)
  8.             {
  9.                 ajaxlistar=otroObjetoAjax();
  10.                 ajax.open("POST","circuit_actual.php",true);
  11.                 ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  12.             }
  13.         }
  14.     }
  15.    
  16.     var cityvalue=encodeURIComponent(document.getElementById('city').value);
  17.     var arrivalvalue=encodeURIComponent(document.getElementById('datepicker_value').value);
  18.     var departurevalue=encodeURIComponent(document.getElementById('otrodatepicker_value').value);
  19.     var commentvalue=encodeURIComponent(document.getElementById('comment').value);
  20.  
  21.     if(arrivalvalue>departurevalue)
  22.     {
  23.         alert('Day of arrival can not be after a day of departure');
  24.     }
  25.     else if(departurevalue<arrivalvalue)
  26.     {
  27.         alert('Day of departure can not be until the arrival day');
  28.     }
  29.     else{
  30.  
  31.         ajax.open("GET", "addCity.php?city="+cityvalue+"&arrival="+arrivalvalue+"&departure="+departurevalue+"&comment="+commentvalue,true);
  32.         ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  33.         //enviando los valores
  34.         ajax.send();
  35.    
  36.         document.getElementById('savecity').disabled = true;
  37.         document.getElementById('more').disabled = true;
  38.         document.getElementById('ciudad').value = "Select other city";
  39.         document.getElementById('add').disabled = false;
  40.         document.getElementById('inner').style.display="block";
  41.         document.getElementById('datepicker_value').value='';
  42.         document.getElementById('otrodatepicker_value').value='';
  43.         document.getElementById('comment').value='';
  44.     }
  45. }
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #9 (permalink)  
Antiguo 10/10/2012, 11:33
Avatar de maximendez88  
Fecha de Ingreso: septiembre-2012
Ubicación: Montevideo
Mensajes: 131
Antigüedad: 12 años, 2 meses
Puntos: 3
Respuesta: mostrar un listado php con ajax

justo estaba en eso! cuando me respondiste!

le agregue unas lineas mas... pero sigue sin funcionar



Código Javascript:
Ver original
  1. function save() {
  2.            
  3. ajax=objetoAjax();
  4.  
  5. ajax.onreadystatechange=function() {
  6. if (ajax.readyState==4) {
  7.  
  8. alert("se introdujo con exito en la base de datos");
  9.  
  10. if(ajax.status==200)
  11.             {
  12.            
  13.         ajaxlistar=otroObjetoAjax();
  14.         ajax.open("POST","circuit_actual.php",true);
  15.  
  16. ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  17.    
  18. document.getElementById(capa).innerHTML =ajax.responseText;
  19.                
  20.            
  21.             }  
  22.  
  23.  
  24.  
  25.  
  26.   }
  27.  }
  28.  
  29.  
  30.  
  31. var cityvalue=encodeURIComponent(document.getElementById('city').value)
  32. var arrivalvalue=encodeURIComponent(document.getElementById('datepicker_value').value)
  33. var departurevalue=encodeURIComponent(document.getElementById('otrodatepicker_value').value)
  34. var commentvalue=encodeURIComponent(document.getElementById('comment').value)
  35.  
  36. if(arrivalvalue>departurevalue)
  37. {
  38.     alert('Day of arrival can not be after a day of departure');
  39. }
  40.  
  41.  
  42. else if(departurevalue<arrivalvalue)
  43. {
  44.     alert('Day of departure can not be until the arrival day');
  45. }
  46.  
  47. else{
  48.  
  49.   ajax.open("GET", "addCity.php?city="+cityvalue+"&arrival="+arrivalvalue+"&departure="+departurevalue+"&comment="+commentvalue,true);
  50.   ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  51.    
  52.    
  53. //enviando los valores
  54.  ajax.send()
  55.    
  56.      document.getElementById('savecity').disabled = true;
  57.      document.getElementById('more').disabled = true;
  58.      document.getElementById('ciudad').value = "Select other city";
  59.      document.getElementById('add').disabled = false;  
  60.      document.getElementById('inner').style.display="block";
  61.      document.getElementById('datepicker_value').value='';
  62.      document.getElementById('otrodatepicker_value').value='';
  63.      document.getElementById('comment').value='';
  64.  
  65.  
  66. }
  67.  
  68.  
  69. }
  #10 (permalink)  
Antiguo 10/10/2012, 11:50
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 16 años, 5 meses
Puntos: 220
Respuesta: mostrar un listado php con ajax

Primero porque haces esto

ajax=objetoAjax();
ajaxlistar=otroObjetoAjax();

Si ya tienes una funcion que te cree el ajax solamente te bastaria llamar a esa funcion
Siempre al declarar una variable por favor usar var

Mira como deberia ser

Código Javascript:
Ver original
  1. function objetoAjax(){
  2.     var xmlhttp=false;
  3.     try {
  4.         xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  5.     } catch (e) {
  6.         try {
  7.             xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  8.         } catch (E) {
  9.             xmlhttp = false;
  10.         }
  11.     }
  12.     if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  13.         xmlhttp = new XMLHttpRequest();
  14.     }
  15.     return xmlhttp;
  16. }
  17.  
  18. function save() {
  19.     var ajax = objetoAjax();
  20.     ajax.onreadystatechange=function() {
  21.         if (ajax.readyState==4 && ajax.status==200) {
  22.             listar();
  23.         }
  24.     }
  25.     ajax.open("GET", "addCity.php?city="+cityvalue+"&arrival="+arrivalvalue+"&departure="+departurevalue+"&comment="+commentvalue,true);
  26.     ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  27.     ajax.send();
  28. }
  29.  
  30. function listar(){
  31.     var ajax2 = objetoAjax();
  32.     ajax.onreadystatechange=function() {
  33.         if (ajax2.readyState==4 && ajax2.status==200) {
  34.            
  35.         }
  36.     }
  37.    
  38.     ajax2.open("POST","circuit_actual.php",true);
  39.     ajax2.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  40.     ajax2.send("id=4&other=4");//aqui puedes poner tus parametros
  41. }
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #11 (permalink)  
Antiguo 10/10/2012, 12:02
Avatar de maximendez88  
Fecha de Ingreso: septiembre-2012
Ubicación: Montevideo
Mensajes: 131
Antigüedad: 12 años, 2 meses
Puntos: 3
Respuesta: mostrar un listado php con ajax

Cita:
Iniciado por Dradi7 Ver Mensaje
Primero porque haces esto

ajax=objetoAjax();
ajaxlistar=otroObjetoAjax();

Si ya tienes una funcion que te cree el ajax solamente te bastaria llamar a esa funcion
Siempre al declarar una variable por favor usar var

Mira como deberia ser

Código Javascript:
Ver original
  1. function objetoAjax(){
  2.     var xmlhttp=false;
  3.     try {
  4.         xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  5.     } catch (e) {
  6.         try {
  7.             xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  8.         } catch (E) {
  9.             xmlhttp = false;
  10.         }
  11.     }
  12.     if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  13.         xmlhttp = new XMLHttpRequest();
  14.     }
  15.     return xmlhttp;
  16. }
  17.  
  18. function save() {
  19.     var ajax = objetoAjax();
  20.     ajax.onreadystatechange=function() {
  21.         if (ajax.readyState==4 && ajax.status==200) {
  22.             listar();
  23.         }
  24.     }
  25.     ajax.open("GET", "addCity.php?city="+cityvalue+"&arrival="+arrivalvalue+"&departure="+departurevalue+"&comment="+commentvalue,true);
  26.     ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  27.     ajax.send();
  28. }
  29.  
  30. function listar(){
  31.     var ajax2 = objetoAjax();
  32.     ajax.onreadystatechange=function() {
  33.         if (ajax2.readyState==4 && ajax2.status==200) {
  34.            
  35.         }
  36.     }
  37.    
  38.     ajax2.open("POST","circuit_actual.php",true);
  39.     ajax2.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  40.     ajax2.send("id=4&other=4");//aqui puedes poner tus parametros
  41. }




se ve muy bien asi... pero sigue sin funcionar el listar...
  #12 (permalink)  
Antiguo 10/10/2012, 12:04
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 16 años, 5 meses
Puntos: 220
Respuesta: mostrar un listado php con ajax

primero en tu listar estas pasando los parametros adecuados y luego valida que este dentro del

if (ajax2.readyState==4 && ajax2.status==200)
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #13 (permalink)  
Antiguo 10/10/2012, 12:08
Avatar de maximendez88  
Fecha de Ingreso: septiembre-2012
Ubicación: Montevideo
Mensajes: 131
Antigüedad: 12 años, 2 meses
Puntos: 3
Respuesta: mostrar un listado php con ajax

creo que si... mira....





Código Javascript:
Ver original
  1. function save() {
  2.    
  3. ajax=objetoAjax();
  4. ajax.onreadystatechange=function() {
  5. if (ajax.readyState==4 && ajax.status==200) {
  6.  
  7. alert("circuit save succefully");
  8.  
  9. listar();
  10.  
  11.   }
  12.  }
  13.  
  14. var cityvalue=encodeURIComponent(document.getElementById('city').value)
  15. var arrivalvalue=encodeURIComponent(document.getElementById('datepicker_value').value)
  16. var departurevalue=encodeURIComponent(document.getElementById('otrodatepicker_value').value)
  17. var commentvalue=encodeURIComponent(document.getElementById('comment').value)
  18.  
  19. if(arrivalvalue>departurevalue)
  20. {
  21.     alert('Day of arrival can not be after a day of departure');
  22. }
  23.  
  24. else if(departurevalue<arrivalvalue)
  25. {
  26.     alert('Day of departure can not be until the arrival day');
  27. }
  28. else{
  29.  
  30.   ajax.open("GET", "addCity.php?city="+cityvalue+"&arrival="+arrivalvalue+"&departure="+departurevalue+"&comment="+commentvalue,true);
  31.   ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  32.    
  33.    
  34.   //enviando los valores
  35.   ajax.send()  
  36.   document.getElementById('savecity').disabled = true;
  37.   document.getElementById('more').disabled = true;
  38.   document.getElementById('ciudad').value = "Select other city";
  39.   document.getElementById('add').disabled = false;  
  40.   document.getElementById('inner').style.display="block";
  41.   document.getElementById('datepicker_value').value='';
  42.   document.getElementById('otrodatepicker_value').value='';
  43.   document.getElementById('comment').value='';
  44.  
  45.  
  46. }
  47. }
  48.  
  49.  
  50. function listar(){
  51.     var ajax2 = objetoAjax();
  52.     ajax.onreadystatechange=function() {
  53.         if (ajax2.readyState==4 && ajax2.status==200) {
  54.            
  55.         }
  56.     }
  57.     ajax2.open("POST","circuit_actual.php",true);
  58.     ajax2.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  59.     ajax2.send("id=4&other=4");//aqui puedes poner tus parametros
  60. }
y este es mi listar en php

Código PHP:
Ver original
  1. <?php
  2. include "config.php";
  3.  
  4.  
  5. $nombrecir=$_SESSION['namecirc'];
  6.  
  7.   $query = "SELECT city FROM `sites` WHERE nombreCirc='".$nombrecir."'";
  8.  
  9.  
  10.  
  11.   $result = mysql_query($query);
  12.   $numero = 0;
  13.   while($row = mysql_fetch_array($result))
  14.   {
  15.     echo "<td width=\"25%\"><font face=\"verdana\">" .
  16.         $row["city"] . "</font></td>";
  17.     echo "<td width=\"25%\"><font face=\"verdana\">" .
  18.         $row["arrival"] . "</font></td>";
  19.     echo "<td width=\"25%\"><font face=\"verdana\">" .
  20.         $row["departure"] . "</font></td>";
  21.     echo "<td width=\"25%\"><font face=\"verdana\">" .
  22.         $row["comment"]. "</font></td>";    
  23.     $numero++;
  24.   }
  25.   echo "<tr><td colspan=\"15\"><font face=\"verdana\"><b>Número: " . $numero .
  26.       "</b></font></td></tr>";
  27.  
  28.   mysql_free_result($result);
  29.  
  30. ?>
  #14 (permalink)  
Antiguo 10/10/2012, 12:12
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 16 años, 5 meses
Puntos: 220
Respuesta: mostrar un listado php con ajax

Pero mira BIENNN estas usando lo que yo puse en el ejemplo

ajax2.send("id=4&other=4");

tu debes poner tus propias variables a enviar a menos que el archivo php no reciba variables

ademas porque no pones un alert para que verifiques si entro o no en el ajax del listar

Saludos
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #15 (permalink)  
Antiguo 10/10/2012, 12:18
Avatar de maximendez88  
Fecha de Ingreso: septiembre-2012
Ubicación: Montevideo
Mensajes: 131
Antigüedad: 12 años, 2 meses
Puntos: 3
Respuesta: mostrar un listado php con ajax

Cita:
Iniciado por Dradi7 Ver Mensaje

ajax2.send("id=4&other=4");
impecable.... igual lo estoy probando con get.... y le paso los valores... como en el save... fijate....
Código Javascript:
Ver original
  1. function listar(){
  2.     var ajax2 = objetoAjax();
  3.     ajax2.onreadystatechange=function() {
  4.         if (ajax2.readyState==4 && ajax2.status==200) {
  5.            
  6.         }
  7.     }
  8.     ajax2.open("GET","circuit_actual.php?city="+cityvalue,true);
  9.     ajax2.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  10.  
  11. }

tambien probe con


Código Javascript:
Ver original
  1. function listar(){
  2.  
  3.     var ajax2 = objetoAjax();
  4.     ajax2.onreadystatechange=function() {
  5.         if (ajax2.readyState==4 && ajax2.status==200) {
  6.            
  7.            alert("listo correctamente  aaauuu");
  8.         }
  9.     }
  10.     ajax2.open("POST","circuit_actual.php",true);
  11.     ajax2.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  12.     ajax2.send("city=city");//aqui puedes poner tus parametros
  13.    
  14.      
  15.     }

tambien probe en sacar todo el codigo y dejar solo un alert... y va correctamente a la funcion listar() el problema esta aparentemente en que el php devuelve una tabla.... pero no se... como recibirla.... o no se que problema hay.. tampoco se que parametros pasar.... ya que yo estoy listando... no enviando.... informacion....

Última edición por maximendez88; 10/10/2012 a las 13:03
  #16 (permalink)  
Antiguo 10/10/2012, 13:22
Avatar de maximendez88  
Fecha de Ingreso: septiembre-2012
Ubicación: Montevideo
Mensajes: 131
Antigüedad: 12 años, 2 meses
Puntos: 3
Respuesta: mostrar un listado php con ajax

esta muy difiicil... esto... la verdad espero que alguien me de una mano... porque no le veo la salida....
  #17 (permalink)  
Antiguo 10/10/2012, 16:36
 
Fecha de Ingreso: enero-2012
Mensajes: 49
Antigüedad: 12 años, 10 meses
Puntos: 4
Respuesta: mostrar un listado php con ajax

Con permiso,

Primero decirte que no tienes por qué pasar parámetros necesariamente al usar Ajax.

Antes de decir nada aclarame, por favor, un par de puntos:
  1. Tienes un fichero PHP en el que se introducen unos valores que se almacenan en la base de datos
  2. Tienes otro fichero PHP que lee el valor de una variable global ($_SESSION['namecirc']) y devuelve un listado en función a éste
  3. Dispones de algún contenedor <div> para mostrar esta informacion
Si todo es así, lo que no entiendo son los siguientes puntos:
  1. ¿Dónde asignas el valor que vas a usar como parámetro ($_SESSION['namecirc']) para mostrar el listado
  2. ¿Por qué necesitas hacerlo en la misma función? Es decir, por qué no te creas una funcion listar() y la llamas después de ejecutar la función save()
Según yo lo veo, siempre y cuando estés seguro de que $_SESSION['namecirc'] tiene el valor que deseas, no necesitas pasar ningún parámetro, símplemente hacer la petición del archivo y listo, aunque lo propio es que envíes 'namecirc' como parametro y lo recibas después ($_POST['namecirc'] ó $_GET['namecirc']).

El tema de crearte otra función es porque teniendo en cuenta que ambas funciones son independientes, símplemente si todo va bien en save() llamas a listar() y si no muestras un alert("Error al almacenar los datos"), por ejemplo.

Por último, tal vez lo más importante, decirte que en el PHP que has posteado no tienes iniciada la tabla en la que muestras los datos y para colmo intentas sacar unos datos de la consulta que no pides, debería ser (comentarios en los cambios):
Código PHP:

 <?php
session_start
(); //A menos que ya tengas esta linea en config.php
include "config.php";
$nombrecir=$_SESSION['namecirc'];

//$query = "SELECT city FROM `sites` WHERE nombreCirc='".$nombrecir."'"; 
//Los cuatro campos que luego quieres mostrar: city,arrival,departure,comment
$query "SELECT city,arrival,departure,comment FROM `sites` WHERE nombreCirc='".$nombrecir."'";
$result mysql_query($query);
$numero 0;
// Creamos los estilos, aunque lo mejor sería tenerlos en un archivo .css incluido en la página principal y no en el AJAX
?>
<style type="text/css">
    .listado td{
        width:25%;
        font-family:verdana;
    }
</style>
<table class="listado"><?php //Creas la tabla
while($row mysql_fetch_array($result))
{
    
?>
    <tr>
        <td><?php echo $row["city"]?></td>
        <td><?php echo $row["arrival"]?></td>
        <td><?php echo $row["departure"]?></td>
        <td><?php echo $row["comment"]?></td>
    </tr>
    <?php
    $numero
++;
}
?>
    <tr>
        <td colspan="4">N&uacute;<?php echo $numero ?></td> <!-- He cambiado el colspan de 15 a 4 -->
    </tr>
</table><?php  //Cierras la tabla
mysql_free_result($result);
?>
Bueno ya me contarás
  #18 (permalink)  
Antiguo 11/10/2012, 10:33
Avatar de maximendez88  
Fecha de Ingreso: septiembre-2012
Ubicación: Montevideo
Mensajes: 131
Antigüedad: 12 años, 2 meses
Puntos: 3
Respuesta: mostrar un listado php con ajax

bueno muchas gracias a todos.... he dado con la solución a mis problemas.... dejo mi codigo... aparentemente estaba fallando en algo... pero estuve tanto tiempo modificandolo que no recuerdo en que....
dejo mi codigo quizas a alguien le sirva...



Código Javascript:
Ver original
  1. function save() {
  2.    
  3. ajax=objetoAjax();
  4. ajax.onreadystatechange=function() {
  5. if (ajax.readyState==4 && ajax.status==200) {
  6.  
  7. alert("city added successfully");
  8.  
  9. listar();
  10.  
  11.   }
  12.  }
  13.  
  14. var cityvalue=encodeURIComponent(document.getElementById('city').value)
  15. var arrivalvalue=encodeURIComponent(document.getElementById('datepicker_value').value)
  16. var departurevalue=encodeURIComponent(document.getElementById('otrodatepicker_value').value)
  17. var commentvalue=encodeURIComponent(document.getElementById('comment').value)
  18.  
  19. if(arrivalvalue>departurevalue)
  20. {
  21.     alert('Day of arrival can not be after a day of departure');
  22. }
  23.  
  24. else if(departurevalue<arrivalvalue)
  25. {
  26.     alert('Day of departure can not be until the arrival day');
  27. }
  28. else{
  29.  
  30.   ajax.open("GET", "addCity.php?city="+cityvalue+"&arrival="+arrivalvalue+"&departure="+departurevalue+"&comment="+commentvalue,true);
  31.   ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  32.    
  33.    
  34.   //enviando los valores
  35.   ajax.send()  
  36.   document.getElementById('savecity').disabled = true;
  37.   document.getElementById('more').disabled = true;
  38.   document.getElementById('ciudad').value = "Select other city";
  39.   document.getElementById('add').disabled = false;  
  40.   document.getElementById('inner').style.display="block";
  41.   document.getElementById('datepicker_value').value='';
  42.   document.getElementById('otrodatepicker_value').value='';
  43.   document.getElementById('comment').value='';
  44.  
  45.  
  46. }
  47. }
  48.  
  49.  
  50.     function listar(){
  51.    
  52.     var ajax2 = objetoAjax();
  53.     ajax2.open("POST", "circuit_actual.php",true);
  54.     ajax2.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  55.     ajax2.send(null);
  56.  
  57.      ajax2.onreadystatechange=function() {
  58.                 if (ajax2.readyState==4 && ajax2.status==200) {
  59.                    
  60.                         document.getElementById('capa').innerHTML = ajax2.responseText;
  61.                         alert("se listo correctamente sesese");
  62.                 }
  63.         }
  64.        
  65.    
  66.    
  67.      
  68.     }

Última edición por maximendez88; 11/10/2012 a las 11:42 Razón: solucionado!

Etiquetas: ajax, listado, php, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:36.