Foros del Web » Programando para Internet » Javascript »

Colocar codigo en mas de una div

Estas en el tema de Colocar codigo en mas de una div en el foro de Javascript en Foros del Web. Estimados Estoy haciendo un sistema en el cual ingreso a la base de datos un producto, lo cual ya esta echo con ajax. El problema ...
  #1 (permalink)  
Antiguo 08/04/2012, 16:10
 
Fecha de Ingreso: julio-2010
Mensajes: 59
Antigüedad: 13 años, 9 meses
Puntos: 0
Colocar codigo en mas de una div

Estimados
Estoy haciendo un sistema en el cual ingreso a la base de datos un producto, lo cual ya esta echo con ajax. El problema es el siguiente, necesito que cuando se ingrese el producto se actualicen dos divs diferentes con diferentes datos del servidor, ya pude ingresar el producto con ajax y actualizar una, pero no puedo hacerlo con las dos al mismo tiempo. Mi pregunta es si hay alguna forma de que cuando se reciba la respuesta desde el php, se pueda reconocer el codigo y mandarlo a dos divs diferentes, eso es lo que yo preciso. Si me pueden ayudar les estaria muy agradecido.
  #2 (permalink)  
Antiguo 08/04/2012, 16:33
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Colocar codigo en mas de una div

Hola:

Una respuesta xml suele ser estructurada... puedes incluso obtener un listado...

Si no te interesa, puedes usar un dato que puedas dividir usando algún delimitador... "|" por ejemplo...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 08/04/2012, 16:40
 
Fecha de Ingreso: julio-2010
Mensajes: 59
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Colocar codigo en mas de una div

Cita:
Iniciado por caricatos Ver Mensaje
Hola:

Una respuesta xml suele ser estructurada... puedes incluso obtener un listado...

Si no te interesa, puedes usar un dato que puedas dividir usando algún delimitador... "|" por ejemplo...

Saludos
Muchas gracias me podrias explicar un poco mas lo que dices soy nuevo en ajax. La base es sql no xml, en lo que quiero publicar en los div hago un While con los datos sacados de la base y genero una tabla y luego hago un echo con todo eso, lo cual lo recibe el ajax y lo manda al div. No entiendo como colocaria eso para que lo dividira y luego lo entendiera el script. Si me puedes explicar un poco mas estaria muy agradecido
  #4 (permalink)  
Antiguo 08/04/2012, 16:50
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Colocar codigo en mas de una div

Hola:

No te confundas... sql se usa para obtener datos de una base de datos, y con php solo "entregas" texto plano (text/plain) al script ajax, pero si cambias la cabecera (con php header("content-type: ...") puedes entregar entre otras cosas documentos xml (no me extrañaría que lo usases para generar imágenes u otras cosas...)

y una respuesta podría ser:

<listado>
<item>valor 1</item>
<item>valor 2</item>
</listado>

Y en vez de obtener los datos con responseText se debe usar responseXML...

Creo que lo segunda posibilidad (que expuse en el anterior mensaje) será la que uses...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 08/04/2012, 18:02
 
Fecha de Ingreso: julio-2010
Mensajes: 59
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Colocar codigo en mas de una div

Cita:
Iniciado por caricatos Ver Mensaje
Hola:

No te confundas... sql se usa para obtener datos de una base de datos, y con php solo "entregas" texto plano (text/plain) al script ajax, pero si cambias la cabecera (con php header("content-type: ...") puedes entregar entre otras cosas documentos xml (no me extrañaría que lo usases para generar imágenes u otras cosas...)

y una respuesta podría ser:

<listado>
<item>valor 1</item>
<item>valor 2</item>
</listado>

Y en vez de obtener los datos con responseText se debe usar responseXML...

Creo que lo segunda posibilidad (que expuse en el anterior mensaje) será la que uses...

Saludos
Veo que sos muy bueno en esto, trataria de no molestarte pero si me das una mano el que no seria molestado seria yo mañana por mi jefe jeje. Este es el codigo ajax que recibe las variables

Código Javascript:
Ver original
  1. function mostrar_mensaje(mensaje, mensajedos, mensajetres){
  2.  
  3.  var miHttpRequest= Ajax();  // Instancia el objeto al llamar a la funcion AJAX
  4.  miHttpRequest.open( 'GET', 'cphp/ingresarasunto.php?cli='+mensaje+'&cont='+mensajedos+'&asu='+mensajetres, true );
  5.  miHttpRequest.send();
  6.  
  7.  
  8.  miHttpRequest.onreadystatechange= function(){
  9.            if (miHttpRequest.readyState==4){
  10.            
  11.            
  12.  
  13.            var respuesta= miHttpRequest.responseText;  // la respuesta queda el texto que va a salir en la DIV
  14.  
  15.             document.getElementById('pesta2').innerHTML = respuesta;
  16.            
  17.             alert("Asunto ingresado con exito");
  18.            
  19.  
  20.            }
  21.           }
  22.  
  23. }

Y este el php que las procesa.
Código PHP:
Ver original
  1. <?PHP
  2.  
  3.  
  4.    
  5. include ("conect.php");
  6.  
  7.  
  8. $cliente =$_GET['cli'];
  9. $contacto =$_GET['cont'];
  10. $asunto =$_GET['asu'];
  11.  
  12. $hora = date("G:i:s");
  13. $centro =' del ';
  14. $dia = date("d/m/Y");
  15. $fecha =$hora.$centro.$dia;
  16.  
  17. $completo = 'NO';
  18.  
  19.  
  20.  
  21. $sql = "INSERT INTO santiago (cliente, asunto, contacto, fecha, completo) VALUES ('$cliente','$asunto','$contacto','$fecha','$completo')";
  22.  
  23. mysql_query($sql,$db);
  24.  
  25.  
  26.  
  27.  
  28. ?>

Y estos los php que quiero publicar en los div los cuales los agregaria al primer php con un include

Código PHP:
Ver original
  1. <?PHP
  2.  
  3.  
  4.  
  5. include ("conect.php");
  6.  
  7. $sql = "select * from santiago";
  8.  
  9. $resultados = mysql_query($sql,$db);
  10.  
  11. echo'<table>';
  12.  
  13. while($row = mysql_fetch_array($resultados)) {
  14.    echo '<tr><td>'.$row["cliente"].'</td><td>'.$row["asunto"].'</td><td>'.$row["contacto"].'</td><td>';
  15. }
  16.  
  17. echo'</td></tr></table>';
  18.  
  19.  
  20. ?>

Código PHP:
Ver original
  1. <?PHP
  2.  
  3. include ("conect.php");
  4.  
  5. $sql = "select * from santiago where completo = 'NO'";
  6.  
  7. $resultados = mysql_query($sql,$db);
  8.  
  9. echo'<table>';
  10.  
  11. while($row = mysql_fetch_array($resultados)) {
  12.    echo '<tr><td>'.$row["cliente"].'</td><td>'.$row["asunto"].'</td><td>'.$row["contacto"].'</td><td>'.$row["fecha"].'<input type="button" value="Resuelto" onclick ="asunto_resuelto('.$row["id"].')">';
  13. }
  14.  
  15. echo'</td></tr></table>';
  16.  
  17.  
  18. ?>

Si me dices bien que le tendria que modificar, me ahorrarias toda una noche de trabajo y rompeduras de cabeza. Muchas gracias
  #6 (permalink)  
Antiguo 09/04/2012, 00:12
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Colocar codigo en mas de una div

Hola:

Si sabes crear los dos trozos de código, tan solo debes poner en médio algún separador... por ejemplo "[separar]"...

echo "resultado primero";
echo "[separar]";
echo "resultado segundo";

Y la respuesta Ajax luego la separas por ejemplo con split...

respuestas = respuesta.split("separar");

Si todo ha ido bien la variable respuestas será un array de dos elementos y solo debes poner cada elemento en su sitio.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 09/04/2012, 12:18
 
Fecha de Ingreso: julio-2010
Mensajes: 59
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Colocar codigo en mas de una div

Cita:
Iniciado por caricatos Ver Mensaje
Hola:

Si sabes crear los dos trozos de código, tan solo debes poner en médio algún separador... por ejemplo "[separar]"...

echo "resultado primero";
echo "[separar]";
echo "resultado segundo";

Y la respuesta Ajax luego la separas por ejemplo con split...

respuestas = respuesta.split("separar");

Si todo ha ido bien la variable respuestas será un array de dos elementos y solo debes poner cada elemento en su sitio.

Saludos
Muchas gracias ahora si lo pude resolver gracias a tu metodo, me costo un poco entender como pero salio.
Dejo el ajax modificadod, por si alguien se topa con este problema pueda solucionarlo

Código Javascript:
Ver original
  1. function mostrar_mensaje(mensaje, mensajedos, mensajetres){
  2.  
  3.  var miHttpRequest= Ajax();  // Instancia el objeto al llamar a la funcion AJAX
  4.  miHttpRequest.open( 'GET', 'cphp/ingresarasunto.php?cli='+mensaje+'&cont='+mensajedos+'&asu='+mensajetres, true );
  5.  miHttpRequest.send();
  6.  
  7.  
  8.  miHttpRequest.onreadystatechange= function(){
  9.            if (miHttpRequest.readyState==4){
  10.  
  11.             var respuesta= miHttpRequest.responseText;  // la respuesta queda el texto que va a salir en la DIV
  12.            
  13.             var respuestasdos = respuesta.split('separar');
  14.            
  15.             document.getElementById('pesta5').innerHTML = respuestasdos[0];
  16.            
  17.                     document.getElementById('pesta6').innerHTML = respuestasdos[1];
  18.                    
  19.                     document.getElementById('cliente').value = '';//esto lo coloque para dejar vacios los campos
  20.                     document.getElementById('asunto').value = '';
  21.                     document.getElementById('contacto').value = '';
  22.            
  23.             alert("Asunto ingresado con exito");
  24.            
  25.  
  26.            }
  27.           }
  28.          
  29. }

Etiquetas: ajax
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 03:52.