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

Formulario con checkbox problema en bucle

Estas en el tema de Formulario con checkbox problema en bucle en el foro de Frameworks JS en Foros del Web. Hola tengo este formulario http://www.peru-expeditions.com/c-prueba.php que contiene unos checkbox, yo deseo seg'un se seleccione se envie sus valores con el mensaje que se valida con ...
  #1 (permalink)  
Antiguo 03/08/2009, 17:07
Avatar de salvador86  
Fecha de Ingreso: enero-2008
Ubicación: Guadalajara- Mexico
Mensajes: 467
Antigüedad: 16 años, 4 meses
Puntos: 2
Formulario con checkbox problema en bucle

Hola tengo este formulario http://www.peru-expeditions.com/c-prueba.php que contiene unos checkbox, yo deseo seg'un se seleccione se envie sus valores con el mensaje que se valida con Captcha así los defini:
Código HTML:
<input name="tour[]" type="checkbox" class="stcajatexto" id="tour0" value="Cusco"> 
y uso js (que valida el captcha y de alli se manda los valores a un php para su envio)
y asi lo declare el js:
Código PHP:
function get(obj) {
            var 
poststr "Nombre=" encodeURIdocument.getElementById("Nombre").value ) +
                                        
"&Correo=" encodeURIdocument.getElementById("Correo").value )+
                                        
"&Otros=" encodeURIdocument.getElementById("Otros").value );
                                for (
i=0i<=3i++)
                                {
                                        
poststr poststr "&tour[" "] = " encodeURIdocument.getElementById("tour"+i).value );
                                }
                    
poststr poststr "&capt=" encodeURIdocument.getElementById("capt").value )+
                                        
"&Submit=" encodeURIdocument.getElementById("Submit").value );
            
makePOSTRequest('captcha/c-envio-prueba.php'poststr);
        }

   function 
write_captcha(){
        
define('Nombre''string''Nombre');
        
define('Correo''email''E-mail');
       
clicks++;
       
document.getElementById('capt').value        ''
      
document.getElementById('captcha_id').innerHTML '<img src="captcha/captcha_img.php?clicks=' clicks '" border="0" alt="" /><a href="#" onclick="write_captcha();"><img src="gifs/refresh.gif" border="0" alt="" /></a>';
   return 
false;
   } 
y así el php
Código PHP:
<?
        session_start
();
        
        
$email_recipient     '[email protected]';

        
error_reporting(0);
        include(
"class/captchaZDR.php");

        
$capt = new captchaZDR;
        
$wrong_captcha     '';

        if(isset(
$_POST['Submit']) and $capt->check_result()){        
              
$message_send "Mensaje desde la página\n\n      
              Nombre: "
.$_POST['Nombre']." \n
              Correo: "
.$_POST['Correo']." \n
                Otros: "
.$_POST['Otros']." \n"
              
foreach ($_POST['tour'] as $id){
                   echo 
$id."<br>";
                }
                ;

                
$headers .= 'To: <'.$email_recipient.'>' "\r\n";
                
$headers .= 'From: '.$_POST['Nombre'].' <'.$_POST['Correo'].'>' "\r\n";

            if(
mail($email_recipient'SOLICITUD DE INFORMACION PERU EXPEDITIONS' $message_send$headers))
                        
header ("Location: http://www.peru-expeditions.com/c-gracias.html");
                else 
                        echo 
'<div style="color: red"><strong>Hubo un problema en el mensaje. Por favor, inténtelo de nuevo. Gracias.</strong></div>';  
        } 
        
        else{if(isset(
$_POST['Submit']) and (!$capt->check_result()) ) 
                echo 
'<div style="color: red"><b>Intente de nuevo. Actualizar:</b><a href="#" onclick="write_captcha();"><img src="gifs/refresh.gif" border="0" alt="" /></a></div>';
        }
?>
El objetivo es que se aisle los checkbox que no han sido seleccionados y solo enviar los valores de los checkbox seleccioandos, la mayoria del código lo saque del foro, espero su ayuda gracias
  #2 (permalink)  
Antiguo 04/08/2009, 02:40
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: Formulario con checkbox problema en bucle

Hola:

Parece que deberías consultar si están checked...

for (i=0; i<=3; i++) {
if (document.getElementById("tour"+i).checked)
poststr = poststr + "&tour[" + i + "] = " + encodeURI( document.getElementById("tour"+i).value );
}

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 04/08/2009, 08:05
Avatar de salvador86  
Fecha de Ingreso: enero-2008
Ubicación: Guadalajara- Mexico
Mensajes: 467
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: Formulario con checkbox problema en bucle

Gracias Caricatos lo probare enseguida, Caricatos quiero aprovechar para preguntarte, si ya que el array es tour[] en el bucle for puedo definirlo así
Código PHP:
for(i=0i<=tour.lenghti++) 
. Gracias

Última edición por salvador86; 04/08/2009 a las 08:46
  #4 (permalink)  
Antiguo 04/08/2009, 08:56
Avatar de salvador86  
Fecha de Ingreso: enero-2008
Ubicación: Guadalajara- Mexico
Mensajes: 467
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: Formulario con checkbox problema en bucle

Hola, lo he probado, el captcha bien, pero al enviar no llega hacer nada, siento que esta correcto el js con el for, pues antes cuando estaba mal definido como en ese mismo js se encuentra la validación del captcha justamente el captcha no salia (ahora si), pero parece que el php recibe los valores pero no los envia, estaba probando el bucle foreach así:
Código PHP:
foreach ($_POST['tour'] as $_POST['tour']){
                   echo 
$_POST['tour']"<br>";
                }
                ; 
Estuve probando desabilitando un momento los bucles en ambos (js y php) y se envia el mensaje, entonces es en algunos de los bucles que esta mal que creo que es el foreach, que lo encontre en este foro, gracias por su ayuda.

Última edición por salvador86; 04/08/2009 a las 09:53
  #5 (permalink)  
Antiguo 04/08/2009, 16:18
Avatar de salvador86  
Fecha de Ingreso: enero-2008
Ubicación: Guadalajara- Mexico
Mensajes: 467
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: Formulario con checkbox problema en bucle

Caricatos estuve probando con While, pero aún no consigo el objetivo, alguna sugerencia:
Código PHP:
$vartour $_POST['tour'];
    
$n        count($vartour);
    
$i        0;


        if(isset(
$_POST['Submit']) and $capt->check_result()){        
              
$message_send "Mensaje desde la página\n\n      
              Nombre: "
.utf8_decode($_POST['Nombre'])." \n
              Correo: "
.utf8_decode($_POST['Correo'])." \n
                Otros: "
.utf8_decode($_POST['Otros'])." \n"

                
while ($i $n)
             {
              
"Tour: ".utf8_decode($_POST['tour'])." \n";
            
$i++;
             } 
  #6 (permalink)  
Antiguo 05/08/2009, 10:50
Avatar de salvador86  
Fecha de Ingreso: enero-2008
Ubicación: Guadalajara- Mexico
Mensajes: 467
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: Formulario con checkbox problema en bucle

Hola, porque no me dan una ayuda, es que acaso es facil de resolverlo que yo no me he dado cuenta?? por favor de veras necesito la ayuda, estoy buscando en google pero no encuentro como mandar formularios con checkbox, espero me puedan ayudar
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 04:48.