Foros del Web » Programando para Internet » PHP »

algunas dudas con los checkbox

Estas en el tema de algunas dudas con los checkbox en el foro de PHP en Foros del Web. hola muy buenas , estoy intentando hacer un formulario que me lleve los datos a la base de datos y luego me los muestre, pero ...
  #1 (permalink)  
Antiguo 30/12/2004, 09:28
Avatar de gachon  
Fecha de Ingreso: septiembre-2004
Ubicación: En Google
Mensajes: 462
Antigüedad: 13 años, 3 meses
Puntos: 3
algunas dudas con los checkbox

hola muy buenas , estoy intentando hacer un formulario que me lleve los datos a la base de datos y luego me los muestre, pero me he quedado atrancado cuando llego a la parte de los checkbox, y quisiera hacer algunas preguntas haber si me lo podeis aclarar;
1-¿lo del value no lo entiendo todavia yo le he puesto a todos en 0 porque lo he visto por hay, en un ejemplo, pero lo del value es el valor que manda a la base de datos no?, es lo que tengo yo entendido no?

2-a la hora de mandar a la base de datos si esta marcado o no un checkbox, como se mandaria igual que input type="text", o es de otra forma, porque mandar texto si se, pero mandar si esta marcado o no un checkbox no tengo ni idea, si me lo pudiras decir como es os lo agradeceria?

3-otra cosa, a la hora de crear el campo con phpmyadmin, que recogira el valor del checkbox que tipo de datos tendria que ponerle ¿vanchar?, ese, o otro ?

4-y ultima duda,como tengo que hacer para que a la hora de mostrar el valor del checkbox de la base de datos, me lo traiga como marcado , con el rabillo ese que sale cuando esta marcado,,

porque lo que quiero hacer es cuando rellenen el formulario, que es para agregar viviendas y marquen los checkbox, a la hora de traer los datos de la base de datos salga por ejemplo que si tiene cocina amueblada,

y esta es la parte del formulario donde salen los checkbox:

Código PHP:
<table width="100%" border="0" cellspacing="1" cellpadding="2">
    <
tbody><tr>
        <
td width="45%"><b>Amueblado:</b></td>
        <
td width="55%">
        <
input type="checkbox" name="Amueblado" value="0"></td>
    </
tr><tr>
        <
td><b>Cocina amueblada:</b></td>

        <
td>
        <
input type="checkbox" name="Cocina" value="0">        </td>
    </
tr><tr>
        <
td><b>Trastero:</b></td>
        <
td>
        <
input type="checkbox" name="Trastero" value="0">        </td>
    </
tr><tr>

        <
td><b>Terraza:</b></td>
        <
td>
        <
input type="checkbox" name="Terraza" value="0">        </td>
    </
tr><tr>
        <
td><b>Garaje:</b></td>
        <
td>
        <
input type="checkbox" name="Garaje" value="0">        </td>

    </
tr><tr>
        <
td><b>Ascensor:</b></td>
        <
td>
        <
input type="checkbox" name="Ascensor" value="0">        </td>
    </
tr><tr>
        <
td><b>Aire acondicionado:</b></td>
        <
td>

        <
input type="checkbox" name="Aire" value="0">        </td>
    </
tr><tr>
        <
td><b>Piscina:</b></td>
        <
td>
        <
input type="checkbox" name="Piscina" value="0">        </td>
    </
tr><tr>
        <
td><b>Jardines:</b></td>

        <
td>
        <
input type="checkbox" name="Jardines" value="0">        </td>
    </
tr></tbody></table>
    </
td>
</
tr></tbody></table
bueno muchas gracias, perdonen por preguntar tango, pero es que tengo esas dudas y si no pregunto, pues no aprendo,,,,,,, y esa es la cuestion que quiero aprender, y este es el unico foro que se donde pueden aclararme las duda y donde pueden ayudarme a aprender,,
bueno me dejo ya de tanto hablar y haber si podeis ayudarme,,
muchas gracias y feliz año nuevo,a todos.
saludos

Última edición por gachon; 30/12/2004 a las 12:44
  #2 (permalink)  
Antiguo 30/12/2004, 11:18
Avatar de baklao  
Fecha de Ingreso: noviembre-2004
Ubicación: Santa Ana - Isla de Margarita
Mensajes: 482
Antigüedad: 13 años
Puntos: 0
Hola que tal te explico mas o menos como funciona un checkbox.

Primero los Value es el valor que pasas a tu base de datos por ejemplo name=checkbox1 value=cocina. a la hora de pasar tu formulario por los metodos POST o GET tomas esos valores de esta manera:

esto es con el metodo post
Código PHP:
 if ($_POST['checkbox1'] == "cocina")
{
hago lo que quiero
}
 else
      {
        
hago lo otro
      

con el metodo Get es asi
Código PHP:
 if ($_GET['checkbox1'] == "cocina")
{
hago lo que quiero
}
 else
      {
        
hago lo otro
      

con lo otro alguien podra de seguro ayudarte ya tengo que salir bye.

Suerte.

__________________
Atte. Mohamed :aplauso:
  #3 (permalink)  
Antiguo 30/12/2004, 14:18
Avatar de oktubre  
Fecha de Ingreso: agosto-2003
Ubicación: en mi casa
Mensajes: 371
Antigüedad: 14 años, 3 meses
Puntos: 4
espero que se me entienda, sino...

pregunta 1:

<input type="checkbox" name="Amueblado" value="amueblado">

te explico, el name (nombre) es el nombre del elemento del formulario, osea el nombre que tendrá la variable : $Amueblado.

el value (valor) es el valor que tendrá esa variable SI Y SOLO SI alguien lo chequeo, osea le hizo click y quedo marcado.

Conclusión, la variable tendrá como valor "amueblado" si alguien lo marca, sino en la consulta donde pones el insert $Amueblado dejará el campo bacio.

pregunta 2:

a la hora de armar la consulta no te preocupes por nada, si nadie lo marca, la consulta quedaría
($CAMPO1, $CAMPO2, $Amueblado, $etc, $etc2)
osea, que si quieres puedes escribir unas líneas de control, que serían:
if($Amueblado ==''){ // entiendase que son comillas simples bacias //
$Amueblado = "No";
}
y luego de esto la consulta tal cual arriba.
(lo aclaré mas arriba en la pregunta uno))

pregunta 3:

la respuesta es si!!!!!!!!!!!!!
VARCHAR, y le cuentas los caracteres y ya esta, es facil

pregunta 4:

esto es facil:
el codigo lo vas a tener que poner antes del check que queres mostrar:

<input type="checkbox" name="Amueblado" value="0" checked>

como ves, si lo vas a poner en un nuevo formulario lo que tienes que hacer es recuperar el valor del campo Amueblado de tu tabla y analizarlo:

$resultado = mysql_query($datos, $db);
$campo = mysql_fetch_array($resultado);

if ($campo =='amueblado') {
$muestro="checked";
} else {
$muestro="";
}
<input type="checkbox" name="Amueblado" value="0" <? echo $muestro ; ?>

te explico cortito:
checked es una propiedad del <input type="checkbox" > y es ésta la propiedad que lo muestra marcado.

con el if en false, despues del else if lo que hacemos es directamente no imprimir nada con el echo() en cambio, si en la tabla el registro dice que aparece la palabra almacenada amueblado, la funcion echo imprimirá en la variable $muestro "checked".


saludos salamin, esta re facil!!!!!!!!!!!!!!!!!!1
__________________
[email protected] <----------------<<<<
prefiero cerrar la boca y parecer un tonto que abrirla y confirmarlo.
  #4 (permalink)  
Antiguo 03/01/2005, 12:57
Avatar de gachon  
Fecha de Ingreso: septiembre-2004
Ubicación: En Google
Mensajes: 462
Antigüedad: 13 años, 3 meses
Puntos: 3
muchas gracias oktubre, no se como agradecertelo de verdad, perdona por constestarte tan tarde, pero he estado liado con la navidad

la verdad que la explicion ha sido muy buena, muchas gracias,

otra cosa:
ahora lo que quiero , que en todos los checkbox si estan marcado o el value="0"
me muestre una imagen y si no otra,,,
¡seria asin, poner antes esto que la parte html ¡, fijandome en lo que tu has puesto antes;
Código PHP:
if ($row =='0') { 
$muestro="<img src=\"images/0.gif\" width=\"70%\" height=\"70%\" border=\"0\" alt=\"\">";
} else {
$muestro="<img src=\"images/1.gif\" width=\"70%\" height=\"70%\" border=\"0\" alt=\"\">";

y luego donde quiero que salgan las imagenes serian asin no?
por ejemplo;
Código PHP:
<tbody><tr>
        <td width=\"50%\"><b>Amueblado:</b></td>
        <td width=\"50%\"><? echo $muestro;?></td>
    </tr><tr>
seria asin o le falta algo, porque no me funciona
bueno muchas gracias
y feliz año nuevo

Última edición por gachon; 03/01/2005 a las 13:08
  #5 (permalink)  
Antiguo 03/01/2005, 13:15
Avatar de oktubre  
Fecha de Ingreso: agosto-2003
Ubicación: en mi casa
Mensajes: 371
Antigüedad: 14 años, 3 meses
Puntos: 4
Estimado No Lees Nahhhhha!!!!!!!!!!!!1

tu pregunta sería sio la estructura de control es la que escribes en tu post?

bueno, no esta tan complejo el esunto
solo que la navidad te ha dejado el rastro de alcohol en todos lados!

fijate que si no anda lo que escribiste es por una sencilla razon:
en el "IF" y else if, esta definiendo la variable muestro; ahora bien, es necesario que determines en que momento de la ejecuación vas a necesitar que se evalue la condición de $row.
una vez que tengas en claro eso, no te olvides de hacer que php imprima la variable $muestro!!!!!!!!!!!!!!!
<? echo $muestro ; ?>
la otra es que veo que dices $row y no $row["campo"]; lo que me hace suponer que no estas interpretando lo que hace un mysql_fetch_array().

cuando uno ejecuta un mysql_fetch_array() inicializa un array asociativo; que en tu caso si haces $row= mysql_fetch....(); vas a tener que escribirlo como $row["campo"] para que el if funcione.

ya me enrede todo, asi que si no entiendes vuelve a preguntar

(algun día me corren del foro por escribir tan feo)


salamin, vas bien, falta prestar un poco mas de atención.


saludos y consulta nuevamente si es necesario.
__________________
[email protected] <----------------<<<<
prefiero cerrar la boca y parecer un tonto que abrirla y confirmarlo.
  #6 (permalink)  
Antiguo 03/01/2005, 14:12
Avatar de gachon  
Fecha de Ingreso: septiembre-2004
Ubicación: En Google
Mensajes: 462
Antigüedad: 13 años, 3 meses
Puntos: 3
si, eso que dicen que una vez al año no hace daño, , tengo una gripe que no veas pero bueno sigo de nuevo dandote la tabarra,,


Código PHP:
<?php
include("conexion.inc.php"); 
$link Conectarse();// Así llamaremos a la función que tenía los datos para conectarse
// En una variable tipo STRING escribimos la consulta.
$sql " SELECT * FROM formulario";
// Con la función ‘mysql_query()’ realizamos la consulta que queramos en la base de datos
// seleccionada previamente. Es decir le entramos la consulta que habíamos llamado ‘$sql’
$result mysql_query($sql) or die("La siguiente consulta contiene algún error:<br>\nSQL: <b>$sql</b>");
// Ahora tenemos en ‘$result’ todos los registros de la consulta, ahora debemos mostrarlos uno a uno
while ($row mysql_fetch_array($result))


//  ‘mysql_fetch_array()’ avanza uno a uno los registros

// Como hemos metido un registro en $row, tendremos que mostrar lo que nos interese en pantalla.

if ($row['Amueblado']=='0') {
$muestro="<img src=\"images/0.gif\" width=\"70%\" height=\"70%\" border=\"0\" alt=\"\">";
} else {
$muestro="<img src=\"images/1.gif\" width=\"70%\" height=\"70%\" border=\"0\" alt=\"\">";
}




echo
" <h3>Información básica</h3></td>
</tr><tr>
    <td width=\"50%\" align=\"left\" valign=\"top\">

    <table width=\"50%\" border=\"0\" cellspacing=\"1\" cellpadding=\"2\">
    <tbody><tr>
        <td width=\"10%\"><b>Referencia:</b></td>
        <td width=\"90%\">"
.$row["Referencia"]."</td>
    </tr><tr>
        <td><b>Zona:</b></td>
        <td>"
.$row["Zona"]."</td>
    </tr></tbody></table>

    </td><td align=\"right\" valign=\"top\">

    <table width=\"50%\" border=\"0\" cellspacing=\"1\" cellpadding=\"2\">
    <tbody><tr>
        <td width=\"10%\"><b>Inmueble:</b></td>
        <td width=\"90%\">"
.$row["Tipo"]."</td>
<tr>
        <td><b>Precio:</b></td>
        <td>"
.$row["Precio"]."&nbsp;€</td>
    </tr></tbody></table>

    </td>

</tr></tbody></table>

<table width=\"560\" border=\"0\" cellspacing=\"1\" cellpadding=\"4\">
<tbody><tr>
    <td width=\"50%\" valign=\"top\">

    <table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"2\">
    <tbody><tr>
        <td width=\"50%\"><b>Amueblado:</b></td>
        <td width=\"50%\"><? echo $muestro;?></td>//aqui es donde quiero que 
//salga la imagen esa que te he dicho, por eso he puesto <?echo $muestro;?>

    </tr><tr>
te digo que he intentando de muchas poner el if pero sigue sin mostrarme la imagen, solo me muestra esto en pantalla:
Código PHP:
Amueblado:      ;?>
Cocina amueblada:     ; ?>
Trastero:     ; ?>
Terraza:     ; ?>
Garaje:     ; ?>
Ascensor:     ; ?>
Aire:     ; ?>
Piscina:     ; ?>
Jardines:     ; ?> 
bueno si vez que soy muy pesado y un poco torpe, no me ayudes mas, ya me has ayudado bastante , te endere;
bueno saludos

Última edición por gachon; 03/01/2005 a las 14:23
  #7 (permalink)  
Antiguo 03/01/2005, 16:46
Avatar de oktubre  
Fecha de Ingreso: agosto-2003
Ubicación: en mi casa
Mensajes: 371
Antigüedad: 14 años, 3 meses
Puntos: 4
salamin con patas...

yo sigo sin ver la linea de codigo que deverías tener que es:
<? echo $muestro ; ?>

por que no me copias el archivo entero y vemos que es lo que pasa?

por las molestias no te hagas problema, yo también torturo a los demas con algunas preguntontas y nadiese hace problemas, en realidad creo que para eso estamos aquí.

saludos
__________________
[email protected] <----------------<<<<
prefiero cerrar la boca y parecer un tonto que abrirla y confirmarlo.
  #8 (permalink)  
Antiguo 03/01/2005, 17:01
Avatar de gachon  
Fecha de Ingreso: septiembre-2004
Ubicación: En Google
Mensajes: 462
Antigüedad: 13 años, 3 meses
Puntos: 3
perdona, ya he encontrado el problema, vamos que por lo menos se ve que intenta salir la imagen pero no se ve la imagen, como si estuviera la direccion de la imagen mal, pero
por lo menos ya es algo,

y el problema era que cuando ponia <? echo $muestro ; ?>, no me salia porque, ya arriba del codigo ya tenia nombrado antes del formulario <?php y el echo tambien,,,
y como siempre intento copiar todo el codigo que me dan o me encuentro, pues nunca me pregunto si el fallo sera de eso, y por eso no me fijaba,,,,,,,,
vaya fallo mas tonto
y otra cosa oktubre se puede reducir el codigo con algun array para no tener que poner todo esto para cada checkbox
Código:
if ($row['Amueblado']=='0') {
$muestro="<img src=\"images/0.gif\">";
} else {
$muestro="<img src=\"images/1.gif\">";
}
y luego otra vez esto;
Código:
if ($row['Cocina']=='0') {
$muestro="<img src=\"images/0.gif\">";
} else {
$muestro="<img src=\"images/1.gif\">";
}
bueno muchisimas gracias de verdad, y gracias por emplear un poco de tu tiempo para mi y para toda la gente del foro
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 12:22.