Foros del Web » Programando para Internet » PHP »

Por favor una ayuda con esto

Estas en el tema de Por favor una ayuda con esto en el foro de PHP en Foros del Web. SALUDOS De antemano muchas gracias por su respuesta, estoy haciendo un formulario con 3 lista que seran desplegables y con checkboxes generadas con datos de ...
  #1 (permalink)  
Antiguo 24/07/2008, 21:37
 
Fecha de Ingreso: noviembre-2004
Ubicación: Callao
Mensajes: 26
Antigüedad: 19 años, 4 meses
Puntos: 0
Sonrisa Por favor una ayuda con esto

SALUDOS

De antemano muchas gracias por su respuesta, estoy haciendo un formulario con 3 lista que seran desplegables y con checkboxes generadas con datos de mi tabla.
La idea es que se cargue primero una lista de marcas y que se seleccione (n) elementos que se desee y al hacer click en el primer boton de la primera lista, se genere la segunda lista de modelos con checkboxes sin perder lo marcado de la primera lista de marcas la lista de modelo se creara con un

"select codigomodelo, nombre from modelo where codigomodelo in (n elementos seleccionado de la lista marca)"

y que al darle click al boton de la segunda lista suceda lo mismo con la tercera lista sin perder los seleccionado de la lista marca y lista modelo.

El problema viene que cuando yo le doy un click al boton de la segunda lista modelo se me borra los elementos seleccionado de la primera lista marca y lo mismo con la tercera lista se me borra lo seleccionado de lista marca y lista modelo.
Como puedo conservar estos los checks marcados, si cada ves que hago (n) clicks a un boton se me pierde los seleccionado.

les pongo el codigo inicial que estoy haciendo, para que me puedan ayudar, por favor que ya no se que mas hacer y estoy al borde la de locura.

Gracias por la ayuda, pues estoy desesperado para hacer un combobox multiseleccion con checkbox en php.

Código PHP:
<html>
<body>
        <?php
            
/* para seguimiento */
            
var_dump($_REQUEST['_pmarca']);
            
$marca=$_REQUEST['_pmarca']; 
            for (
$i=0$i<=count($marca); $i++)    { $aux1 .= "|"$marca[$i] ;    }    echo '<br> valor aux1:' .$aux1 '<br><br>';
            
            
var_dump($_REQUEST['_pmodelo']);    
            
$modelo=$_REQUEST['_pmodelo']; 
            for (
$i=0$i<=count($modelo); $i++)    { $aux2 .= "|"$modelo[$i] ;    }    echo '<br> valor aux2: ' .$aux2 '<br>';
        
?>    
<form action="<?php $_SERVER['PHP_SELF'?>" method="post">
        <ul>
                <li><label for="o1"><input name="_pmarca[]" value="1" type="checkbox" <?php echo (strpos($aux1'|1|') ? 'checked':'nada'); ?> />Registro Marca 1</label></li>
                <li><label for="o2"><input name="_pmarca[]" value="2" type="checkbox" <?php echo (strpos($aux1'|2|') ? 'checked':'nada'); ?> />Registro Marca 2</label></li>
                <li><label for="o3"><input name="_pmarca[]" value="3" type="checkbox" <?php echo (strpos($aux1'|3|') ? 'checked':'nada'); ?> />Registro Marca 3</label></li>
                <li><label for="o4"><input name="_pmarca[]" value="4" type="checkbox" <?php echo (strpos($aux1'|4|') ? 'checked':'nada'); ?> />Registro Marca 4</label></li>
                <li><label for="o5"><input name="_pmarca[]" value="5" type="checkbox" <?php echo (strpos($aux1'|5|') ? 'checked':'nada'); ?> />Registro Marca 5</label></li>
                <li><label for="o6"><input name="_pmarca[]" value="6" type="checkbox" <?php echo (strpos($aux1'|6|') ? 'checked':'nada'); ?> />Registro Marca 6</label></li>
                <li><label for="o7"><input name="_pmarca[]" value="7" type="checkbox" <?php echo (strpos($aux1'|7|') ? 'checked':'nada'); ?> />Registro Marca 7</label></li>
                <li><label for="o8"><input name="_pmarca[]" value="8" type="checkbox" <?php echo (strpos($aux1'|8|') ? 'checked':'nada'); ?> />Registro Marca 8</label></li>
                <li><label for="o9"><input name="_pmarca[]" value="9" type="checkbox" <?php echo (strpos($aux1'|9|') ? 'checked':'nada'); ?> />Registro Marca 9</label></li>
                <li><label for="o10"><input name="_pmarca[]" value="10" type="checkbox" <?php echo (strpos($aux1'|10|') ? 'checked':'nada'); ?> />Registro Marca 10</label></li>
                <li><label for="o10"><input name="_pmarca[]" value="11" type="checkbox" <?php echo (strpos($aux1'|11|') ? 'checked':'nada'); ?> />Registro Marca 11</label></li>
                <li><label for="o10"><input name="_pmarca[]" value="22" type="checkbox" <?php echo (strpos($aux1'|22|') ? 'checked':'nada'); ?> />Registro Marca 22</label></li>
        </ul>
        <input type="submit" name="boton1" value="Aceptar">
        <ul>
                <li><label for="o1"><input name="_pmodelo[]" value="1" type="checkbox" <?php echo (strpos($aux2'|1|') ? 'checked':'nada'); ?> />Registro Marca 1</label></li>
                <li><label for="o2"><input name="_pmodelo[]" value="2" type="checkbox" <?php echo (strpos($aux2'|2|') ? 'checked':'nada'); ?> />Registro Marca 2</label></li>
                <li><label for="o3"><input name="_pmodelo[]" value="3" type="checkbox" <?php echo (strpos($aux2'|3|') ? 'checked':'nada'); ?> />Registro Marca 3</label></li>
                <li><label for="o4"><input name="_pmodelo[]" value="4" type="checkbox" <?php echo (strpos($aux2'|4|') ? 'checked':'nada'); ?> />Registro Marca 4</label></li>
                <li><label for="o5"><input name="_pmodelo[]" value="5" type="checkbox" <?php echo (strpos($aux2'|5|') ? 'checked':'nada'); ?> />Registro Marca 5</label></li>
                <li><label for="o6"><input name="_pmodelo[]" value="6" type="checkbox" <?php echo (strpos($aux2'|6|') ? 'checked':'nada'); ?> />Registro Marca 6</label></li>
                <li><label for="o7"><input name="_pmodelo[]" value="7" type="checkbox" <?php echo (strpos($aux2'|7|') ? 'checked':'nada'); ?> />Registro Marca 7</label></li>
                <li><label for="o8"><input name="_pmodelo[]" value="8" type="checkbox" <?php echo (strpos($aux2'|8|') ? 'checked':'nada'); ?> />Registro Marca 8</label></li>
                <li><label for="o9"><input name="_pmodelo[]" value="9" type="checkbox" <?php echo (strpos($aux2'|9|') ? 'checked':'nada'); ?> />Registro Marca 9</label></li>
                <li><label for="o10"><input name="_pmodelo[]" value="10" type="checkbox" <?php echo (strpos($aux2'|10|') ? 'checked':'nada'); ?> />Registro Marca 10</label></li>
        </ul>
        <input type="submit" name="boton1" value="Aceptar 2">
</form>
</body>
</html>
  #2 (permalink)  
Antiguo 25/07/2008, 04:37
Avatar de Kamae  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona (Catalunya)
Mensajes: 307
Antigüedad: 16 años
Puntos: 13
Respuesta: Por favor una ayuda con esto PLEASE

No entiendo esto
Código PHP:
<?php echo (strpos($aux1'|7|') ? 'checked':'nada'); ?>

En cualquier caso, yo lo que haría al principio es hacer unos if para cada formulario. Entonces creas por ejemplo un array de Session con los checkbox que haya, lo inicializas todos a 0, y lo pones a 1 en los checks que estén marcados.

Otra duda, sólo pueden marcar un sólo checkbox por formulario? Es que todos se llaman igual y con los radiobutton si se llaman igual sólo pulsas1, pero con checkboxs ni idea..

Bueno, yo más o menos haría algo así:

Código PHP:
if(isset($_POST["boton1"])){
     if(
$_POST["boton1"]=="Aceptar"){
          
session_register("checks");
          for(
$i=1;$i<23;$i++){
               if(
$_POST["_pmarca[]"]==$i)
                    
$_SESSION["checks"][$i]=1;
               else
                    
$_SESSION["checks"][$i]=0;
          }
     }
     else if(
$_POST["boton1"]=="Aceptar 2"){
          
session_register("checks2");
          for(
$i=1;$i<12;$i++){
               if(
$_POST["_pmodelo[]"]==$i)
                    
$_SESSION["checks2"][$i]=1;
               else
                    
$_SESSION["checks2"][$i]=0;
          }
     }

Esto por un lado, antes del form, donde tienes el código PHP.

Luego en los forms:

Código PHP:
<form action="<?php $_SERVER['PHP_SELF'?>" method="post">
        <ul>
                <li><label for="o1"><input name="_pmarca[]" value="1" type="checkbox" <?php if(isset($_SESSION["checks"])&&$_SESSION["checks"][1]==1) echo "checked"?> />Registro Marca 1</label></li>
                                <li><label for="o2"><input name="_pmarca[]" value="2" type="checkbox" <?php if(isset($_SESSION["checks"])&&$_SESSION["checks"][2]==1) echo "checked"?> />Registro Marca 2</label></li> 

//(..... así con todos, sólo tienes que cambiar el $_SESSION["checks"][X] donde X es el value="X")

// (...)

// Y para el form2:

                <li><label for="o1"><input name="_pmodelo[]" value="1" type="checkbox" <?php if(isset($_SESSION["checks2"])&&$_SESSION["checks2"][1]==1) echo "checked"?> />Registro Marca 1</label></li>
                <li><label for="o2"><input name="_pmodelo[]" value="2" type="checkbox" <?php if(isset($_SESSION["checks2"])&&$_SESSION["checks2"][2]==1) echo "checked"?> />Registro Marca 2</label></li>

//(..... y lo mismo, igual con el resto)

Más o menos así debería de irte, no sé si funcionará exactamente bien porque no puedo probarlo ahora mismo. Pero guardando el resultado en sessiones y escribiendo "checked" si la sessión está en true, bastaría.

Espero que te haya servido de ayuda, saludos
  #3 (permalink)  
Antiguo 25/07/2008, 08:31
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Por favor una ayuda con esto PLEASE

PDTA:

puede que _pmarca[] no exista en el entorno de PHP, si en el formulario esta declarado asi.... se interpreta como array entonces, hay que entenderlo primero....

Referencia: http://www.php.net/variables.external

Código PHP:
echo $_POST['_pmarca[]']; // MAL :(

echo $_POST['_pmarca']; // OK (array) 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
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 14:56.