Foros del Web » Programando para Internet » PHP »

Superponer texto AJAX en consulta SQL

Estas en el tema de Superponer texto AJAX en consulta SQL en el foro de PHP en Foros del Web. Hola! Necesito ayuda, jeje. Tengo el siguiente código simplificado en PHP. Se trata de una página .php con un formulario que envía la propia página: ...
  #1 (permalink)  
Antiguo 25/08/2012, 13:12
 
Fecha de Ingreso: junio-2008
Mensajes: 15
Antigüedad: 15 años, 9 meses
Puntos: 0
Superponer texto AJAX en consulta SQL

Hola! Necesito ayuda, jeje. Tengo el siguiente código simplificado en PHP. Se trata de una página .php con un formulario que envía la propia página:

Código PHP:
<?php if (isset($_POST["submit"])) {

    
$sql "SELECT * FROM table";
    
$result mysql_query($sql);

    while(
$row mysql_fetch_array($result)) {

        
mail($to$subject$newMessage$headers);

    }
?>

<?php if (!isset($_POST["submit"])) {
    <
form action="$PHP_SELF" method="post">
        <
input name="subject" type="text" id="subject" />
        <
textarea name="message" id="nbody"></textarea>
        <
input type="submit" name="submit" id="submit" value="Send newsletter" />
    </
form>
}else{
    echo 
"All mail processed";
?>
Mientras se está procesando la consulta SQL y se envían los mails, me gusatría mostrar algún texto tipo "enviando correo X de Y), que se superponga encima de la página, o en algún sitio de ella.

Creo que con AJAX probablemente podría hacerse, he probado todo lo que se me ocurre, pero no logro resultados que funcionen... xD

Utilizo la librería JQUERY.

Gracias!!
  #2 (permalink)  
Antiguo 25/08/2012, 14:00
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 4 meses
Puntos: 168
Respuesta: Superponer texto AJAX en consulta SQL

una pregunta, para que esto
Código PHP:
Ver original
  1. $sql = "SELECT * FROM table";
  2.     $result = mysql_query($sql);
  3.  
  4.     while($row = mysql_fetch_array($result)) {
  5.  
  6.         mail($to, $subject, $newMessage, $headers);
  7.  
  8.     }

si haces una consulta a la base de datos, al menos usala para algo, estas seleccionando todas las filas de tu tabla pero nunca la usas, en otras palabras creas una variable $row que es igual a cada fila recuperada pero donde usas $row? nunca lo usaste, es una consulta sin sentido.
Acordate que tendrías que hacer algo como $row['campo1'].. $row['campoN'] para hacer referencia a cada uno de tus campos o sino tambien por indice $row[0] .
  #3 (permalink)  
Antiguo 25/08/2012, 18:25
 
Fecha de Ingreso: junio-2008
Mensajes: 15
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Superponer texto AJAX en consulta SQL

Esa consulta olvidala jeje, la uso, no sale aqui porque no he posteado el codigo completo, que es mucho mas largo! La voy a quitar de ahi...

Respecto al problema, alguien se le ocurre solucion?

Gracias!!
  #4 (permalink)  
Antiguo 25/08/2012, 18:33
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 4 meses
Puntos: 168
Respuesta: Superponer texto AJAX en consulta SQL

con ajax es posible porque podes saber en que estado se encuentra la petición, segun los codigos. Pero eso ya te cambia la estructura de tu php.
A demas, tanto demora en enviar un mail? se supone que debe ser bastante rapido y no debe de ser muy largo el tiempo de envio de un mail.
Hay una serie de codigos en ajax, para saber si el estado de la peticion esta en proceso, termino, no se ejecuto, etc.. buscalos
  #5 (permalink)  
Antiguo 26/08/2012, 03:51
 
Fecha de Ingreso: junio-2008
Mensajes: 15
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Superponer texto AJAX en consulta SQL

No se envia un mail, procesa toda una base de datos de mails, y si, la peticion dura un buen rato!

Se que existen, pero no se usarlos, por eso pido ayuda jeje

Un saludo!
  #6 (permalink)  
Antiguo 26/08/2012, 06:16
 
Fecha de Ingreso: mayo-2006
Mensajes: 475
Antigüedad: 17 años, 10 meses
Puntos: 58
Respuesta: Superponer texto AJAX en consulta SQL

Crea un archivo donde se recibiran todos los datos de la consulta.
Despues puedes implementar esto:
http://www.miguelmanchego.com/2009/a...cargar-jquery/
  #7 (permalink)  
Antiguo 26/08/2012, 10:46
FDA
 
Fecha de Ingreso: agosto-2010
Mensajes: 99
Antigüedad: 13 años, 7 meses
Puntos: 2
Respuesta: Superponer texto AJAX en consulta SQL

No seria más facil reservar un div por ejemplo id=resultado para el resultado y capturar el envio del formulario con jquery para procesarlo con ajax?

Código Javascript:
Ver original
  1. $('#compra').submit(function() {
  2.    // Definimos el metodo ajax, los datos
  3.         $.ajax({
  4.             type: 'POST',
  5.             url: $(this).attr('action'),
  6.             data: $(this).serialize(),
  7.             success: function(data) {
  8.                 // Imprimimos la respuesta en el div result
  9.                 $('#resultado').html(data);
  10.             }
  11.         })
  12.        
  13.         return false;
  14.     });

Si quieres el mensaje de cargando solo tendrias que añadir por ajax para cargar el gif de cargando o el mensaje que quieras.
  #8 (permalink)  
Antiguo 26/08/2012, 17:06
 
Fecha de Ingreso: junio-2008
Mensajes: 15
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Superponer texto AJAX en consulta SQL

Hola! Gracias por las respuestas, pero lo que pido no es eso, no exactamente vaya... Si que quiero lo del mensaje de cargando, pero me gustaría que mostrase el progreso de la consulta (enviando correo 1 de 100 por ejemplo).

Eso no puedo hacerlo con lo que me proponéis, el mensaje de cargando a secas no muestra más que la barra del navegador de cargando, no te da una idea de lo que puede quedar, jeje, de ahí que busque mostrar el progreso.

Aún así muchas gracias!

Etiquetas: ajax, html, sql
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:00.