Ver Mensaje Individual
  #4 (permalink)  
Antiguo 15/06/2012, 14:54
Avatar de SnakeCode
SnakeCode
 
Fecha de Ingreso: mayo-2012
Ubicación: Lima - Perú
Mensajes: 23
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: ajax captcha jquery

Bueno en realidad, ya tengo un script AJAX para el envio pero no me funciona en Chrome, en todos menos en chrome, y es el siguiente:

Código Javascript:
Ver original
  1. var http_request = false;
  2.    var clicks     = 0;
  3.    function makePOSTRequest(url, parameters) {
  4.       http_request = false;
  5.       if (window.XMLHttpRequest) { // Mozilla, Safari,...
  6.          http_request = new XMLHttpRequest();
  7.          if (http_request.overrideMimeType) {
  8.             // set type accordingly to anticipated content type
  9.             //http_request.overrideMimeType('text/xml');
  10.             http_request.overrideMimeType('text/html');
  11.          }
  12.       } else if (window.ActiveXObject) { // IE
  13.          try {
  14.             http_request = new ActiveXObject("Msxml2.XMLHTTP");
  15.          } catch (e) {
  16.             try {
  17.                http_request = new ActiveXObject("Microsoft.XMLHTTP");
  18.             } catch (e) {}
  19.          }
  20.       }
  21.       if (!http_request) {
  22.          alert('Cannot create XMLHTTP instance');
  23.          return false;
  24.       }
  25.      
  26.       http_request.onreadystatechange = alertContents;
  27.       http_request.open('POST', url, true);
  28.       http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  29.       http_request.setRequestHeader("Content-length", parameters.length);
  30.       http_request.setRequestHeader("Connection", "close");
  31.       http_request.send(parameters);
  32.    }
  33.  
  34.    function alertContents() {
  35.       if (http_request.readyState == 4) {
  36.          if (http_request.status == 200) {
  37.             //alert(http_request.responseText);
  38.             result = http_request.responseText;
  39.             document.getElementById('myspan').innerHTML = result;            
  40.          } else {
  41.             alert('Hubo un problema en la Solicitud.');
  42.          }
  43.       }
  44.    }
  45.    
  46.    function get(obj) {
  47.         var varSex="";
  48.           if(document.getElementsByName("Sexo")[0].checked){
  49.                 varSex = document.getElementsByName("Sexo")[0].value;
  50.           }else if(document.getElementsByName("Sexo")[1].checked){
  51.                 varSex = document.getElementsByName("Sexo")[1].value;
  52.             }else{
  53.                 varSex = "";
  54.             }
  55.       var poststr = "Nombre=" + encodeURI( document.getElementById("Nombre").value ) +
  56.             "&Pais=" + encodeURI( document.getElementById("Pais").value ) +
  57.             "&Telefono=" + encodeURI( document.getElementById("Telefono").value )+
  58.             "&Correo=" + encodeURI( document.getElementById("Correo").value )+
  59.             "&Sexo=" + encodeURI(varSex) +
  60.             "&Edad=" + encodeURI( document.getElementById("Edad").value )+
  61.             "&Permanencia=" + encodeURI( document.getElementById("Permanencia").value )+
  62.             "&Fecha=" + encodeURI( document.getElementById("Fecha").value )+
  63.             "&Encontro=" + encodeURI( document.getElementById("Encontro").value )+
  64.             "&Comentarios=" + encodeURI( document.getElementById("Comentarios").value )+
  65.             "&url=" + encodeURI( document.getElementById("url").value )+
  66.             "&capt=" + encodeURI( document.getElementById("capt").value )+           
  67.             "&Submit=" + encodeURI( document.getElementById("Submit").value );
  68.       makePOSTRequest('http://www.vivatoursperu.com/captcha/c-envio-solicitud.php', poststr);
  69.    }
  70.  
  71.    function write_captcha(){
  72.         define('Nombre', 'string', 'Nombre');
  73.         define('Correo', 'email', 'E-mail');
  74.         define('Pais', 'string', 'País');
  75.         define('capt', 'string', 'Captcha');
  76.     clicks++;
  77.     document.getElementById('capt').value       = ''
  78.       document.getElementById('captcha_id').innerHTML = '<img src="http://www.vivatoursperu.com/captcha/captcha_img.php?clicks=' + clicks + '" border="0" alt="" /><a href="#" onclick="write_captcha();"><img src="http://www.vivatoursperu.com/captcha/png_bank/refresh.gif" border="0" alt="" /></a><br />Escribe los caracteres de la imagen';
  79.    return false;
  80.    }

Por tal razon, queria hacerlo con jquery para ver si funciona pero en realidad no se como =S, este es el codigo modificado:

Código Javascript:
Ver original
  1. var clicks    = 0;
  2.    function makePOSTRequest(datos) {
  3.         $.ajax({
  4.                     type        : 'POST',
  5.                     dataType    : 'html',
  6.                     contentType : 'application/x-www-form-urlencoded',
  7.                     url         : 'captcha/c-envio-solicitud.php',
  8.                     data        : datos,
  9.                     success     : datos_enviados,
  10.                     timeout     : 4000,
  11.                     error       : problemas
  12.                 });  
  13.    }
  14.    
  15.    function datos_enviados(){
  16.        $("#myspan").text(datos);
  17.    }
  18.    
  19.    function problemas(){
  20.        alert("Problemas en el servidor...");
  21.    }
  22.    
  23.    function get(obj) {
  24.         var varSex="";
  25.           if(document.getElementsByName("Sexo")[0].checked){
  26.                 varSex = document.getElementsByName("Sexo")[0].value;
  27.           }else if(document.getElementsByName("Sexo")[1].checked){
  28.                 varSex = document.getElementsByName("Sexo")[1].value;
  29.             }else{
  30.                 varSex = "";
  31.             }
  32.       var poststr = "Nombre=" + encodeURI( document.getElementById("Nombre").value ) +
  33.             "&Pais=" + encodeURI( document.getElementById("Pais").value ) +
  34.             "&Telefono=" + encodeURI( document.getElementById("Telefono").value )+
  35.             "&Correo=" + encodeURI( document.getElementById("Correo").value )+
  36.             "&Sexo=" + encodeURI(varSex) +
  37.             "&Edad=" + encodeURI( document.getElementById("Edad").value )+
  38.             "&Permanencia=" + encodeURI( document.getElementById("Permanencia").value )+
  39.             "&Fecha=" + encodeURI( document.getElementById("Fecha").value )+
  40.             "&Encontro=" + encodeURI( document.getElementById("Encontro").value )+
  41.             "&Comentarios=" + encodeURI( document.getElementById("Comentarios").value )+
  42.             "&url=" + encodeURI( document.getElementById("url").value )+
  43.             "&capt=" + encodeURI( document.getElementById("capt").value )+           
  44.             "&Submit=" + encodeURI( document.getElementById("Submit").value );
  45.             makePOSTRequest(poststr);
  46.    }
  47.  
  48.    function write_captcha(){
  49.         define('Nombre', 'string', 'Nombre');
  50.         define('Correo', 'email', 'E-mail');
  51.         define('Pais', 'string', 'País');
  52.         define('capt', 'string', 'Captcha');
  53.     clicks++;
  54.     document.getElementById('capt').value       = ''
  55.       document.getElementById('captcha_id').innerHTML = '<img src="http://www.vivatoursperu.com/captcha/captcha_img.php?clicks=' + clicks + '" border="0" alt="" /><a href="#" onclick="write_captcha();"><img src="http://www.vivatoursperu.com/captcha/png_bank/refresh.gif" border="0" alt="" /></a><br />Escribe los caracteres de la imagen';
  56.    return false;
  57.    }

Alguna ayudita urgente, que necesito arreglar ese problema en el trabajo. Gracias de antemano.

PD: el codigo de mi post anterior no es valido, disculpen!!

Saludos

Última edición por SnakeCode; 15/06/2012 a las 15:51