Foros del Web » Programando para Internet » PHP »

Agregar valor en "name='' " al hacer click en checkbox

Estas en el tema de Agregar valor en "name='' " al hacer click en checkbox en el foro de PHP en Foros del Web. Hola Amigos, Ojala puedan ayudarme con mi duda, procedo a explicar y preguntar: Tengo el siguiente código: Código: <script type="text/javascript"> var _n=0,_nCh=3; function fc(th){ switch(th.checked){ ...
  #1 (permalink)  
Antiguo 01/07/2008, 00:25
Avatar de CHILENOCES  
Fecha de Ingreso: octubre-2001
Ubicación: Mmm paseando por la vida
Mensajes: 491
Antigüedad: 23 años
Puntos: 0
Agregar valor en "name='' " al hacer click en checkbox

Hola Amigos,
Ojala puedan ayudarme con mi duda, procedo a explicar y preguntar:

Tengo el siguiente código:

Código:
<script type="text/javascript">
var _n=0,_nCh=3;
function fc(th){
 switch(th.checked){
  case true:
   if(_n>=(_nCh)){
    th.checked=false;
   alert("Puedes seleccionar un maximo de 3 checkboxes");	
    return false;
   }
   _n++;
   break;
  case false:
  _n--; 
  break; 
 }
}
</script>
Y el checkbox es así:

Código HTML:
<input name="" type="checkbox" id="checkbox" onClick="fc(this);" value="Valor del checkbox" /> 
Esta funcion lo que hace, es que en un resultado de 4 ó mas checkboxes solo permite marcar 3, y si el usuario trata de marcar la cuarta entonces le salta la alarma de que "Solo puedes marcar 3 checkboxes."

Hasta aqui todo bien.

Lo que necesito es saber como puedo agregar una función que al momento de hacer click en el checkbox le agregue el name="NOMBRECAMPO" automáticamente.

Si lo dejo mas claro es que supongamos que hay 10 checkboxes, cuando el usuario marque 1 checkbox automaticamente le asignara name="checkbox1", cuando marque la segunda name="checkbox2", y la tercera name="checkbox3".
Cuando el usuario trate de marcar la cuarta caja, le dirá que sólo puede marcar 3, pero si el usuario se arrepiente de haber marcado el checkbox2 entonces lo desmarca y selecciona otra, y obviamente automáticamente le asigna el checkbox2 a esa nueva.

Ojala se entienda y espero puedan ayudarme ya que de verdad he pensado mucho en esto pero no logro dar con la solución.

Muchas gracias!!!!!

Saludos,
ChilenoCes.
__________________
ChilenoCesar Looking for something new...
  #2 (permalink)  
Antiguo 01/07/2008, 00:46
 
Fecha de Ingreso: junio-2008
Mensajes: 60
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Agregar valor en "name='' " al hacer click en checkbox

Estás utilizando php? porque me parece que se lo que quieres hacer y creo que no es lo mejor, mira este ejemplo antes a ver si te puede orientar:
Código PHP:
<html xmlns="http://www.w3.org/1999/xhtml">
<body onload="init()">
<?if($_POST['btn_enviar']):?>
<pre>
<?=print_r($_POST['grupo'])?>
</pre>
<?endif?>
<form action="" method="post">
    <input name="grupo[]" value="primero" type="checkbox" />Check1<br/>
    <input name="grupo[]" value="segundo" type="checkbox" />Check2<br/>
    <input name="grupo[]" value="tercero" type="checkbox" />Check3<br/>
    <input name="grupo[]" value="cuarto" type="checkbox" />Check4<br/>
    <input type="submit" value="enviar" name="btn_enviar" />
</form>
</body>
</html>
Si no te vale pues intentaré ayudarte con el javascript

Un saludo.
  #3 (permalink)  
Antiguo 01/07/2008, 01:00
Avatar de CHILENOCES  
Fecha de Ingreso: octubre-2001
Ubicación: Mmm paseando por la vida
Mensajes: 491
Antigüedad: 23 años
Puntos: 0
Respuesta: Agregar valor en "name='' " al hacer click en checkbox

Pues Ivan,
Asi es! PHP y exactamente lo que necesito.

Ahora mi pregunta es la siguiente: (creo que deberan moverlo al foro PHP )

De acuerdo a los resultados de esos 3 checkbox marcados, entregara 3 array con 3 codigos algo asi como: 3,45, 9.

Necesito tomar esos 3 "id" para hacer la consulta a la base de datos, pero soy pesimo con en tratar de leer array.
Por lo tanto me podrias indicar como ejecutar el query para hacer un SELECT desde la tabla, refiriendome a esos ID (provenientes del array).

Basicamente para que sea:
SELECT * FROM tabla WHERE id="45";

Mil gracias Ivan, ojala puedas terminar de ayudarme!.

Saludos!!
__________________
ChilenoCesar Looking for something new...
  #4 (permalink)  
Antiguo 01/07/2008, 01:08
 
Fecha de Ingreso: junio-2008
Mensajes: 60
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Agregar valor en "name='' " al hacer click en checkbox

Es esto lo que necesitas??
Código PHP:
<html xmlns="http://www.w3.org/1999/xhtml">
<body onload="init()">
<?
if($_POST['btn_enviar']){
    
$consulta "SELECT * FROM tabla WHERE ";
    
$primera true;
    foreach(
$_POST['grupo'] as $value)
    {
        if(
$primera)
            
$primera false;
        else
            
$consulta .= " OR ";
        
        
$consulta .= "id=".$value;
    }
    echo 
$consulta;
}
?>
<form action="" method="post">
    <input name="grupo[]" value="1" type="checkbox" />Check1<br/>
    <input name="grupo[]" value="2" type="checkbox" />Check2<br/>
    <input name="grupo[]" value="3" type="checkbox" />Check3<br/>
    <input name="grupo[]" value="4" type="checkbox" />Check4<br/>
    <input type="submit" value="enviar" name="btn_enviar" />
</form>
</body>
</html>
  #5 (permalink)  
Antiguo 01/07/2008, 01:17
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 9 meses
Puntos: 772
Respuesta: Agregar valor en "name='' " al hacer click en checkbox

Mensaje movido al foro de PHP desde JavaScript.

Saludos,
  #6 (permalink)  
Antiguo 01/07/2008, 01:23
Avatar de CHILENOCES  
Fecha de Ingreso: octubre-2001
Ubicación: Mmm paseando por la vida
Mensajes: 491
Antigüedad: 23 años
Puntos: 0
Respuesta: Agregar valor en "name='' " al hacer click en checkbox

Ivan,
Mil gracias por la ayuda, básicamente es eso lo que necesito, pero en este caso es para extraer datos desde la tabla correspondiente al ID, que en duro sería asi:

Código PHP:
$query  "SELECT * FROM tabla WHERE id='$id'";
$result mysql_query($query);

while(
$row mysql_fetch_array($result))
{
$nombre $row['nombre'];
$apellido $row['apellido'];
}

echo 
"Yo soy $nombre $apellido"
Ahora si me respondes esto, te envío una botella de vino desde Santiago, jejejeje...

Mil gracias!!!!!


(Gracias JavierB por moverlo).
__________________
ChilenoCesar Looking for something new...
  #7 (permalink)  
Antiguo 01/07/2008, 02:04
 
Fecha de Ingreso: junio-2008
Mensajes: 60
Antigüedad: 16 años, 5 meses
Puntos: 2
Información Respuesta: Agregar valor en "name='' " al hacer click en checkbox

De nada hombre, desde santiago de chile? yo estoy en santiago de compostela
A ver el codigo que te he pasado antes lo que hace es sacar infor sobre los ids seleccionados en la misma consulta. Si lo quieres hacer en consultas separadas, ya lo tienes hecho casi:

Código PHP:
if($_POST['btn_enviar']){
    foreach(
$_POST['grupo'] as $value)
    {
       
$query  "SELECT * FROM tabla WHERE id='$value'";
       
$result mysql_query($query);

       while(
$row mysql_fetch_array($result))
       {
           
$nombre $row['nombre'];
           
$apellido $row['apellido'];
            echo 
"Yo soy $nombre $apellido";
       }
    }

no?
Cita:
Iniciado por CHILENOCES Ver Mensaje
Ivan,
Mil gracias por la ayuda, básicamente es eso lo que necesito, pero en este caso es para extraer datos desde la tabla correspondiente al ID, que en duro sería asi:

Código PHP:
$query  "SELECT * FROM tabla WHERE id='$id'";
$result mysql_query($query);

while(
$row mysql_fetch_array($result))
{
$nombre $row['nombre'];
$apellido $row['apellido'];
}

echo 
"Yo soy $nombre $apellido"
Ahora si me respondes esto, te envío una botella de vino desde Santiago, jejejeje...

Mil gracias!!!!!


(Gracias JavierB por moverlo).
  #8 (permalink)  
Antiguo 01/07/2008, 02:20
Avatar de CHILENOCES  
Fecha de Ingreso: octubre-2001
Ubicación: Mmm paseando por la vida
Mensajes: 491
Antigüedad: 23 años
Puntos: 0
Respuesta: Agregar valor en "name='' " al hacer click en checkbox

Ya se que me estoy pasando en preguntar! jejeje...

Si bien miro el codigo:
Código PHP:
if($_POST['btn_enviar']){
    foreach(
$_POST['grupo'] as $value)
    {
       
$query  "SELECT * FROM tabla WHERE id='$value'";
       
$result mysql_query($query);

       while(
$row mysql_fetch_array($result))
       {
           
$nombre $row['nombre'];
           
$apellido $row['apellido'];
            echo 
"Yo soy $nombre $apellido";
       }
    }

Este query entregara resultado para 3 registros de la tabla ej: id 1,2,3.

Y entonces luego en la misma pagina necesito mostrar la informacion correspondiente a esos tres registros, de manera:

Soy $nombre1 $apellido1
Soy $nombre2 $apellido2
Soy $nombre3 $apellido3

Como seria el query en ese caso???

Muchas gracias!
__________________
ChilenoCesar Looking for something new...
  #9 (permalink)  
Antiguo 01/07/2008, 02:27
 
Fecha de Ingreso: junio-2008
Mensajes: 60
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Agregar valor en "name='' " al hacer click en checkbox

A ver con el codigo que estás imprimendo ya haría eso o no? yo no lo he probado pq n tengo la base de datos. De esta forma te ejecuta 3 consultas, si lo quieres hacer todo en la misma coge el condigo anterior en el que lo separaba por OR
  #10 (permalink)  
Antiguo 01/07/2008, 02:43
Avatar de CHILENOCES  
Fecha de Ingreso: octubre-2001
Ubicación: Mmm paseando por la vida
Mensajes: 491
Antigüedad: 23 años
Puntos: 0
Respuesta: Agregar valor en "name='' " al hacer click en checkbox

Ivan,
Luego de toda tu ayuda, finalmente ha quedado:

Código PHP:
<html xmlns="http://www.w3.org/1999/xhtml">
<body onload="init()">
<?
include("conexion.php");
if(
$_POST['btn_Compare']){
foreach(
$_POST['grupo'] as $value)
    {
       
$query  "SELECT * FROM tabla WHERE id='$value'";
       
$result mysql_query($query);

       while(
$row mysql_fetch_array($result))
       {
          
$name $row['name'];
          
$city $row['city'];
          echo 
"$name - $city<br />";
}
}
}
?>
<script type="text/javascript">var _n=0,_nCh=3; function fc(th){ switch(th.checked){ case true: if(_n>=(_nCh)){ th.checked=false; alert("Puedes seleccionar un maximo de 3 checkboxes");return false; }_n++; break; case false: _n--; break; } }</script>

<form action="" method="post">
    <input name="grupo[]" value="1" onClick="fc(this);" type="checkbox" />Check1<br/>
    <input name="grupo[]" value="2" onClick="fc(this);" type="checkbox" />Check2<br/>
    <input name="grupo[]" value="3" onClick="fc(this);" type="checkbox" />Check3<br/>
    <input name="grupo[]" value="4" onClick="fc(this);" type="checkbox" />Check4<br/>
    <input name="grupo[]" value="5" onClick="fc(this);" type="checkbox" />Check5<br/>
    <input name="grupo[]" value="6" onClick="fc(this);" type="checkbox" />Check6<br/>
    <input name="grupo[]" value="7" onClick="fc(this);" type="checkbox" />Check7<br/>
    <input type="submit" value="Comparar" name="btn_Compare" />
</form>
<br /><br />
<A HREF="<? echo $_SERVER['PHP_SELF']; ?>">Refrescar</A>
</body>
</html>
Realmente te has pasado, un 10!!!!


Un millon de gracias!

Ahora a dormir 4.43am

Saludos desde lejos!

Agur!
__________________
ChilenoCesar Looking for something new...
  #11 (permalink)  
Antiguo 01/07/2008, 02:49
 
Fecha de Ingreso: junio-2008
Mensajes: 60
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Agregar valor en "name='' " al hacer click en checkbox

Bueno, espero por esa botellita..... ejej
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 22:44.