Foros del Web » Programando para Internet » Javascript » Frameworks JS »

cambiar orden segun response

Estas en el tema de cambiar orden segun response en el foro de Frameworks JS en Foros del Web. ya consegui pasar la variable, lo hice de la siguiente manera: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original < script >   $ ( "#captchaform" ...
  #1 (permalink)  
Antiguo 29/11/2011, 10:14
 
Fecha de Ingreso: marzo-2011
Mensajes: 226
Antigüedad: 13 años, 1 mes
Puntos: 1
cambiar orden segun response

ya consegui pasar la variable, lo hice de la siguiente manera:
Código Javascript:
Ver original
  1. <script>
  2.  
  3. $("#captchaform").submit(function(event){
  4.     //alert("hola");
  5. event.preventDefault();
  6.    
  7.     $.ajax({
  8.         type: "post",
  9.         url: "compruebaCaptcha.php",
  10.         data: $("#captchaform").serialize(),
  11.         success: function(data){
  12.             $("#verificaCaptcha").hide(function(){$('div.msg').fadeIn('slow').fadeOut(6000)});
  13.            
  14.             $("#verificaCaptcha").html(data);
  15.            
  16.             //$().append(html);
  17.            
  18.         }
  19.     });
  20. });
  21.  
  22. </script>
  23.  
  24.  
  25. <div id="verificaCaptcha" class="msg" style="display:none;">
  26.  
  27. </div>


pero al resolver esto me surgio otra duda, vereis, proceso en la pagina compruebaCaptcha.php el captcha de la siguiente manera:

Código PHP:
Ver original
  1.  
  2. if (!empty($_POST['captcha-form'])) {
  3.     if (empty($_SESSION['captcha']) || trim(strtolower($_POST['captcha-form'])) != $_SESSION['captcha']) {
  4.         echo($captcha_message = "vuelve a intentarlo");
  5.     } else {
  6.         echo($captcha_message = "captcha valido");
  7.     }
  8.  
  9.     //$request_captcha = htmlspecialchars($_POST['captcha-form']);
  10.  
  11.     //echo $captcha_message;
  12.      
  13.     unset($_SESSION['captcha']);
  14. }

este codigo comprueba el captcha y en caso de q sea correcto envia el mensaje cptcha valido y lo muestra en
<div id="verificaCaptcha" class="msg" style="display:none;">
</div>

ahora mi pregunta es:

como puedo hacer para q si es correcto el captcha aparezca otro div q contiene el formulario para q introduzca la direccion de correo electronico. esq probe a hacerlo poniendo
$("#muestraFormEmail").hide(function(){$('div.ms g' ).fadeIn('slow').fadeOut(6000)});
debajo de
$("#verificaCaptcha").html(data);

pero asi aunq sea un captcha incorrecto me muestra siempre el formulario para introducir la direccion de correo electronico. como podria hacer para q en caso de q sea correcto aparezca el div y en caso de q sea incorrecto no aparezca nada?



gracias
  #2 (permalink)  
Antiguo 29/11/2011, 13:47
 
Fecha de Ingreso: julio-2003
Ubicación: Cochabamba Bolivia
Mensajes: 300
Antigüedad: 20 años, 9 meses
Puntos: 14
Respuesta: cambiar orden segun response

Hola.

Puedes hacerlo asi.

Tu codigo javacript quedaria asi:

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. *
  3. $("#captchaform").submit(function(event){
  4. * * //alert("hola");
  5. event.preventDefault();
  6. * *
  7. * * $.ajax({
  8. * * * * type: "post",
  9. * * * * url: "compruebaCaptcha.php",
  10. * * * * data: $("#captchaform").serialize(),
  11. * * * * success: function(data){
  12.  
  13.            if( data == 'captcha valido' )
  14.            {
  15.                $( '#verificaCaptcha' ).html( 'Captcha correcto!!' );
  16.                $( '#verificaCaptcha' ).show( 'slow' );
  17.                $( '#idDeTuFormulario' ).show( 'slow' );
  18.            }
  19. * * * * * *
  20. * * * * }
  21. * * });
  22. });
  23. *
  24. </script>

y en tu html tendria que agregar algo asi:

Código HTML:
Ver original
  1. <div id="idDeTuFormulario" style="display: none;">
  2. aqui tu formulario
  3. </form>
  4. </div>

Eso es todo.

Saludos.
__________________
:policia: Uno para todos y todos para uno.
  #3 (permalink)  
Antiguo 29/11/2011, 18:03
 
Fecha de Ingreso: marzo-2011
Mensajes: 226
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: cambiar orden segun response

lo modifike asi pero no funciona, falla en la linea de if

Código Javascript:
Ver original
  1. <script>
  2.  
  3. $("#captchaform").submit(function(event){
  4.     //alert("hola");
  5. event.preventDefault();
  6.    
  7.     $.ajax({
  8.         type: "post",
  9.         url: "compruebaCaptcha.php",
  10.         data: $("#captchaform").serialize(),
  11.         success: function(data){
  12.             //$("#verificaCaptcha").html(data);
  13.             alert(data);
  14.             //$("#verificaCaptcha").hide();
  15.             if(data=='captcha valido'){
  16.  
  17.             $("#formEmail").hide(function(){$('div.msg').fadeIn('slow').fadeOut(1000)});
  18.             //$().append(html);
  19.             $("#captchaform").hide(function(){});
  20.             }
  21.         }
  22.     });
  23. });
  24.  
  25.  
  26. </script>


el problema es q esta linea no funciona, y no se xq la verdad
if(data=='captcha valido')
  #4 (permalink)  
Antiguo 29/11/2011, 18:24
 
Fecha de Ingreso: julio-2003
Ubicación: Cochabamba Bolivia
Mensajes: 300
Antigüedad: 20 años, 9 meses
Puntos: 14
Respuesta: cambiar orden segun response

Hola la verdad es que no me gusta mucho como esta tu codigo, pues eso de avaluar textos con echo no me parece muy correcto, te sugiero lo hagas asi:

tu codigo php quedaria asi:
Código PHP:
Ver original
  1.  
  2. if (!empty($_POST['captcha-form'])) {
  3.     if (empty($_SESSION['captcha']) || trim(strtolower($_POST['captcha-form'])) != $_SESSION['captcha']) {
  4.         $success = false;
  5.     } else {
  6.          $success = true;
  7.     }
  8.     unset($_SESSION['captcha']);
  9. }
  10. else
  11. {
  12. $success = false;
  13. }
  14. echo json_encode( $success );

Tu javascript quedaria asi (ojo agregue el dataType y el ===):
Código Javascript:
Ver original
  1. <script>
  2.  
  3. $("#captchaform").submit(function(event){
  4.     //alert("hola");
  5. event.preventDefault();
  6.    
  7.     $.ajax({
  8.         type: "post",
  9.         url: "compruebaCaptcha.php",
  10.         data: $("#captchaform").serialize(),
  11.         dataType: 'json',
  12.         success: function( data ){
  13.             if( data===true )
  14.             {
  15.                    //aqui haces lo que quieresa si es correcto
  16.             }
  17.             else
  18.            {
  19.                   // aqui si el captcha no iguala
  20.            }
  21.        }
  22.     });
  23. });
  24.  
  25.  
  26. </script>

Saludos.
__________________
:policia: Uno para todos y todos para uno.
  #5 (permalink)  
Antiguo 30/11/2011, 04:02
 
Fecha de Ingreso: marzo-2011
Mensajes: 226
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: cambiar orden segun response

gracias por tu ayuda,

pero no se si solo me pasan a mi estas cosas, veras, lo modifique como me comentaste tu

y asi de repente me da un errror de dintaxis en otro script q tengo mas abajo, te lo pongo aki por si vosootros le veis el error xq yo ya lo repase mil veces y no lo veo y dreamweaver no me proporciona mucha ayuda

Código Javascript:
Ver original
  1. <script>
  2.  
  3. $("#formPass").submit(function(event){
  4. event.preventDefault();
  5.  
  6.     $.ajax({
  7.         type: "POST",
  8.         url: "enviaDatosPassword.php",
  9.         data: $("#formPass").serialize(),
  10.         success: function(data){
  11.                
  12.             $("#formPass").hide(function(){$('div.msg1').fadeIn('slow');});
  13.            
  14.             $("#respuestaMail").html(data);
  15.             alert(data);
  16.            
  17.             $("#flotante").fadeOut(3000);
  18.         }  
  19.     });
  20. });
  21. (aqui es donde me pone q esta el error)
  22. </script>

en este script tengo el alert data xq solo kiero q muestre la respuesta de un archivo php .

pero el error de sintaxis q me da es al final de todo del script y no se xq la verdad, xq dice q es error de sintaxis y yo creo q lo tengo todo bien, y como ya te dije fue justo despues de cambiar el otro script
  #6 (permalink)  
Antiguo 30/11/2011, 04:15
 
Fecha de Ingreso: marzo-2011
Mensajes: 226
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: cambiar orden segun response

ya consegui solucionar el error de sintaxis, no se xq pero borre todo el script y lo pegue de nuevo y ya no me da ningun error, pero al probar el nuevo script hace un par de cosas q no kisiera q haga, veras, cuando pincho en el <a href...> que me lleva a la pagina donde tengo el formulario con el captcha, me salta el alert como si entrara por el else antes de hacer nada, una vez introduzco el captcha en el formulario para validarlo lo comprueba pero me salta a otra pagina en blanco en la q pone true en vez de kedarse en la misma y mostrar un div oculto, el codigo lo modifique asi siguiendo el q me explicaste tu

Código Javascript:
Ver original
  1. <script>
  2. $.ajax({
  3.         type: "post",
  4.         url: "compruebaCaptcha.php",
  5.         data: $("#captchaform").serialize(),
  6.         dataType: 'json',
  7.         success: function(data){
  8.            
  9.             if(data == true){
  10.                 //event.preventDefault();
  11.                 $("#formEmail").hide(function(){$('div.msg').fadeIn('slow').fadeOut(1000)});
  12.                 $("#captchaform").hide(function(){});
  13.             }
  14.             else{
  15.                
  16.                 alert("incorrecto!, recarga la imagen y prueba de nuevo");
  17.            
  18.             //$("#verificaCaptcha").html(data);
  19.        
  20.             //$("#verificaCaptcha").hide();
  21.             //if(data=='captcha valido'){
  22.             //$("#formEmail").hide(function(){$('div.msg').fadeIn('slow').fadeOut(1000)});
  23.             //$().append(html);
  24.             //$("#captchaform").hide(function(){});
  25.             }
  26.         }
  27. });
  28.  
  29.  
  30.  
  31. </script>
  #7 (permalink)  
Antiguo 30/11/2011, 09:27
 
Fecha de Ingreso: julio-2003
Ubicación: Cochabamba Bolivia
Mensajes: 300
Antigüedad: 20 años, 9 meses
Puntos: 14
Respuesta: cambiar orden segun response

Hola.

Asi nomas es dificil ayudarte, pon el codigo de tus 3 paginas y vere que puede estar causando que te salte en paginas nuevas.

Saludos.
__________________
:policia: Uno para todos y todos para uno.
  #8 (permalink)  
Antiguo 30/11/2011, 09:57
 
Fecha de Ingreso: marzo-2011
Mensajes: 226
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: cambiar orden segun response

ya lo solucione, fue q al andar modificando sin kerer borre la linea de event.preventdefault() y x eso lo mostraba en otra pagina, fallo tonto x mi parte pero esq al estar tantas horas delante del ordenador se me paso x alto este detalle

gracias x tu ayuda!

Etiquetas: jquery
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 07:53.