Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] recojer datos de chekboxes y radio buttons desde un html a un .js y enviar con php

Estas en el tema de recojer datos de chekboxes y radio buttons desde un html a un .js y enviar con php en el foro de Javascript en Foros del Web. Hola , les cuento ,estoy hace una semana tratando de resolver algo con respecto a los chekboxes y los botones radio. El problema que tengo ...
  #1 (permalink)  
Antiguo 19/06/2013, 10:13
(Desactivado)
 
Fecha de Ingreso: mayo-2013
Ubicación: lejos
Mensajes: 31
Antigüedad: 10 años, 11 meses
Puntos: 0
recojer datos de chekboxes y radio buttons desde un html a un .js y enviar con php

Hola , les cuento ,estoy hace una semana tratando de resolver algo con respecto a los chekboxes y los botones radio. El problema que tengo es que no me llegan los resultados por mail de estos botones. El formulario funciona perfectamente y llega a destino, de hecho envía una respuesta automática de recibido, pero en donde debe aparecer los datos de los chekboxes y de los radio no hay nada, llega en blanco. como se ve en la foto:



El código HTML con el formulario completo es el siguiente:

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>formu</title>
  5. <script type="text/javascript">
  6. function MM_jumpMenu(targ,selObj,restore){ //v3.0
  7.   eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  8.   if (restore) selObj.selectedIndex=0;
  9. }
  10. <style type="text/css">
  11. .nombre {
  12. }
  13. .email {
  14. }
  15. .telefono {
  16. }
  17. .localidad {
  18. }
  19. .lugardetrabajo {
  20. }
  21. .dimension {
  22. }
  23. .archivos {
  24. }
  25. .consulta {
  26. }
  27. .encuesta {
  28. }
  29.  
  30. .botonenviarlo {
  31.     clear: right;
  32.     float: right;
  33. }
  34. .perfect {
  35.     text-align: center;
  36.     display: block;
  37.     background-color: #3CF;
  38.     width: 200px;
  39.     right: auto;
  40.     clip: rect(auto,auto,auto,auto);
  41.     clear: left;
  42.     float: left;
  43. }
  44. .perfect2 {
  45.     text-align: center;
  46.     display: block;
  47.     clear: left;
  48.     float: left;
  49.     background-color: #F36;
  50.     width: 400px;
  51.     right: auto;
  52.     clip: rect(auto,auto,auto,auto);
  53. }
  54. .transparente {
  55.     display: none;
  56. }
  57. </head>
  58. <form method="post" name="formulariotipopresupuesto">
  59.     <div><input name="nombre" type="text" class="nombre" id="nombre" placeholder="  Nombre"/></div>
  60.     <div><input name="email" type="text" class="email" placeholder="  E-Mail"  /></div>
  61.     <div><input name="telefono" type="text" class="telefono" placeholder="  Telefono" /></div>
  62.   <div><input name="localidad" type="text" class="localidad" placeholder="  Localidad" /></div>
  63.   <div>
  64.     <label>Indique cual sería nuestra área de trabajo:
  65.       <br />
  66.   Puede elegir más de una opción. </label></div>
  67.   <div>
  68.     <table width="717" class="lugardetrabajo">
  69.       <tr>
  70.         <td width="251"><label>
  71.           <input type="checkbox" name="lugardetrabajo[]" value="Interior de una casa."/>
  72.           Interior de una casa.</label></td>
  73.       </tr>
  74.         <td width="454"><label>
  75.           <input type="checkbox" name="lugardetrabajo[]" value="Local de comidas (Ej. Pizzería, rotisería, heladería)"/>
  76.           Local de comidas (Ej. Pizzería, rotisería, heladería)</label></td>
  77.       </tr>
  78.       <tr>
  79.         <td><label>
  80.           <input type="checkbox" name="lugardetrabajo[]" value="Exterior de una casa (Ej. jardín)."/>
  81.           Exterior de una casa (Ej. jardín).</label></td>
  82.         <td><label>
  83.           <input type="checkbox" name="lugardetrabajo[]" value="Un negocio (Ej. Maxi quiosco, ferretería)"/>
  84.         Un negocio (Ej. Maxi quiosco, ferretería)</label></td>
  85.       </tr>
  86.       <tr>
  87.         <td><label>
  88.           <input type="checkbox" name="lugardetrabajo[]" value="Casa y jardín completos."/>
  89.           Casa y jardín completos.</label></td>
  90.         <td><label>
  91.           <input type="checkbox" name="lugardetrabajo[]" value="Un salón (Ej. Iglesia, salón de fiestas)"/>
  92.         Un salón (Ej. Iglesia, salón de fiestas)</label></td>
  93.       </tr>
  94.       <tr>
  95.         <td><label>
  96.           <input type="checkbox" name="lugardetrabajo[]" value="Un techo."/>
  97.           Un techo.</label></td>
  98.         <td><label>
  99.           <input type="checkbox" name="lugardetrabajo[]" value="Escuela o Institución (Ej. Colegio, Jardín de infantes)"/>
  100.         Escuela o Institución (Ej. Colegio, Jardín de infantes)</label></td>
  101.       </tr>
  102.     </table>
  103.   </div>
  104.   <label>De qué tamaño aproximado considera que es el total del lugar a tratar:</label>
  105.   <div>
  106.   <table width="218" class="dimension">
  107.     <tr>
  108.       <td><label>
  109.         <input type="radio" name="dimension" value="Grande"/>
  110.         Grande.</label></td>
  111.     </tr>
  112.     <tr>
  113.       <td><label>
  114.         <input type="radio" name="dimension" value="Mediano"/>
  115.         Mediano</label></td>
  116.     </tr>
  117.     <tr>
  118.       <td><label>
  119.         <input type="radio" name="dimension" value="Chico"/>
  120.         Chico.</label></td>
  121.     </tr>
  122.   </table>
  123.   </div>
  124.   <label>Si lo desea puede enviarnos una foto del lugar o la plaga que lo esté afectando.
  125.   De esta forma el presupuesto puede ser más detallado:</label>
  126.   <div><input name="enviarfoto" type="file" class="archivos" /></div>
  127.   <div><textarea name="consulta" cols="" rows="" class="consulta" placeholder="  Consulta..."></textarea></div>
  128.   <label>Como conoció nuestra web?</label>
  129.   <div><select name="encuesta" id="encuesta" class="encuesta" >
  130. <option>-Por Facebook.</option>
  131.     <option>-A traves de otra web.</option>
  132.     <option>-Por revista publicitaria.</option>
  133.     <option>-Buscando en Google</option>
  134.     <option selected="selected">-Elija una respuesta...</option>
  135.   </select></div>
  136.  
  137.   <div id="perfecto" class="perfect" style="display:none">enviado!
  138.                 </div>
  139.       <div id="road" class="perfect2 transparente" >pensando...
  140.       </div>  
  141.  
  142.          
  143.   <button class="botonenviarlo">ENVIAR CONSULTA</button>
  144. </form>
  145. <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
  146. <script type="text/javascript" src="scripts/funcionesdos.js"></script>
  147. </body>
  148. </html>

Sigo abajo por que si pego aquí el php la pagina me direciona a una pagina con capcha, no se por que.
  #2 (permalink)  
Antiguo 19/06/2013, 10:14
(Desactivado)
 
Fecha de Ingreso: mayo-2013
Ubicación: lejos
Mensajes: 31
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: recojer datos de chekboxes y radio buttons desde un html a un .js y enviar

Bien, después de eso todo se chekea en un .js El siguiente:

Código Javascript:
Ver original
  1. (function(){
  2.     $(".botonenviarlo").click(function() {
  3.  
  4.         var check = $("input[type='checkbox']:checked").length;
  5.         var radio = $("input[type='radio']:checked").length;
  6.  
  7.         var nombre = $(".nombre").val();
  8.             email = $(".email").val();
  9.             validacion_email = /^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/;
  10.             telefono = $(".telefono").val();
  11.         localidad= $(".localidad").val();
  12.         consulta = $(".consulta").val();
  13.             encuesta= $(".encuesta").val();
  14.            
  15.  
  16.         if (nombre == "") {
  17.             $(".nombre").focus();
  18.             return false;
  19.         }else if(email == "" || !validacion_email.test(email)){
  20.             $(".email").focus();    
  21.             return false;
  22.         }else if(telefono == ""){
  23.             $(".telefono").focus();
  24.             return false;
  25.         }else if(localidad == ""){
  26.             $(".localidad").focus();
  27.             return false;
  28.         }else if(consulta == ""){
  29.             $(".consulta").focus();
  30.             return false;
  31.          }else{
  32.              
  33.             $('.perfect2').removeClass('transparente');
  34.                    
  35. var datos = 'nombre='+ nombre + '&email=' + email + '&encuesta=' + encuesta + '&check=' + check + '&telefono=' + telefono + '&consulta=' + consulta + '&localidad=' + localidad ;
  36. $.ajax({
  37.     type: "POST",
  38.     url: "envio.php",
  39.     data: datos,
  40.     success: function()
  41.     {  
  42.          $('.perfect2').hide();
  43.          $('#perfecto').delay(500).fadeIn('slow');
  44.          $('form[name=formulariotipopresupuesto]').get(0).reset();
  45.          $('#perfecto').delay(5000).fadeOut('slow');     
  46.     },
  47.     error: function() {
  48.         $('#fracaso').delay(500).fadeIn('slow');          
  49.     }
  50. });
  51. return false;
  52.  
  53.         }
  54.  
  55.     });
  56. })();
  #3 (permalink)  
Antiguo 19/06/2013, 10:16
(Desactivado)
 
Fecha de Ingreso: mayo-2013
Ubicación: lejos
Mensajes: 31
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: recojer datos de chekboxes y radio buttons desde un html a un .js y enviar

y finalmente , recibe un PHP que envía el mail:

Código PHP:
Ver original
  1. <?php
  2. // Guardar los datos recibidos en variables:
  3. $nombre = $_POST['nombre'];
  4. $email = $_POST['email'];
  5. $telefono = $_POST['telefono'];
  6. $localidad = $_POST['localidad'];
  7. $encuesta = $_POST['encuesta'];
  8. $consulta = $_POST['consulta'];
  9. $lugardetrabajo= $_POST['lugardetrabajo'];
  10. $dimension= $_POST['dimension'];
  11.  
  12. // Definir el correo de destino:
  13. $dest = "[email protected]";
  14.  
  15. // Estas son cabeceras que se usan para evitar que el correo llegue a SPAM:
  16. $headers = "From: $nombre <$email>\r\n";  
  17. $headers .= "X-Mailer: PHP5\n";
  18. $headers .= 'MIME-Version: 1.0' . "\n";
  19. $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
  20.  
  21. // Aqui definimos el asunto y armamos el cuerpo del mensaje
  22. $asunto = "Consulta desde formulario BARRIER web site.";
  23. $cuerpo = "Este mensaje fue enviado por ".$nombre."<br>";
  24. $cuerpo .= "Su Email es: ".$email."<br>";
  25. $cuerpo .= "Numero de telefono: ".$telefono."<br>";
  26. $cuerpo .= "Vive en: ".$localidad."<br>";
  27. $cuerpo .= "Como conocio la pagina web? ".$_POST['encuesta'] . "<br>";
  28. $cuerpo .= "El lugar a tratar es: ".$lugardetrabajo."<br>";
  29. $cuerpo .= "Considera el cliente que el total del lugar es: ".$dimension. "<br>";
  30. $cuerpo .= "Consulta: ".$consulta. "<br>";
  31. $cuerpo .= "Enviado el: " . date('d/m/Y', time());
  32.  
  33. // Esta es una pequena validación, que solo envie el correo si todas las variables tiene algo de contenido:
  34. if($nombre != '' && $email != '' && $telefono != '' && $encuesta != '' && $consulta != ''){
  35.     mail($dest,$asunto,$cuerpo,$headers); //ENVIAR!
  36.  
  37. //Enviando auto respuesta.
  38.         $pfw_header = "From: [email protected]\n"
  39.         . "Reply-To: [email protected]\n";
  40.                 $headers = "From: $nombre <$email>\r\n";  
  41.         $pfw_subject = "Tu consulta fue recibida";
  42.         $pfw_email_to = "$email";
  43. // Estas son cabeceras que se usan para evitar que el correo llegue a SPAM:
  44. $headers = "From: $nombre <$email>\r\n";  
  45. $headers .= "X-Mailer: PHP5\n";
  46. $headers .= 'MIME-Version: 1.0' . "\n";
  47. $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
  48.  
  49.         $pfw_message = "Muchas Gracias $nombre por contactar con BARRIER Control De Plagas\n"
  50.         . "Tu consulta fue recibida satisfactoriamente. \n"
  51.        
  52.         . "Nos pondremos en contanto contigo lo antes posible a tu E-mail: $email \n"
  53.         . "Si no respondemos por e-mail nos comunicaremos al: $telefono \n"
  54.         . " \n"
  55.         . "--------------------------------------------------------------------------\n"
  56.                 . "Por favor de NO responda este mensaje ya que es generado Automaticamente.\n"
  57.                 . "BARRIER-Control De Plagas.\n"
  58.         . "Tel: (011) 4233-7274.\n"
  59.                 . "www.barrierplagas.com.ar.\n";
  60.        
  61.         @mail($pfw_email_to, $pfw_subject ,$pfw_message ,$pfw_header ) ;
  62. }
  63. ?>

Aquí pongo la foto ya que mas arriba no puedo editar:



Por que me llegan los chekboxes y radio en blanco? que estaría faltando o que estoy haciendo mal?

MIL GRACIAS! DE ANTE MANO.

Etiquetas: formulario, funcion, html, input, jquery, js, php, radio, recojer, 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:23.