| |||
Insertar y listar checkbox Buenos días amigos del foro, soy nuevo aqui y queria sacarme unas cuantas dudas de encima, espero que puedan ayudarme, estaba verificando manuales y todo tipo de informacion sobre php y hubo algo que me causo curiosidad porque no encontraba ningun ejemplo ni en los manuales ni en internet : Vi que se podían insertar checkbox en una bd, solo los seleccionados delimitados por comas (Ej. 2,4,7) ojo solo los seleccionados, pero luego para listarlos no existia ninguna solucion, es decir para listar los seleccionados con el checkverificado , espero alguien me ayude a quitarme esta duda. Gracias. |
| |||
Respuesta: Insertar y listar checkbox gracias muy interesante tu punto de vista, te muestro como inserto mi formulario tiene esto : <input id="element_20_1" name="entregables[]" class="element checkbox" type="checkbox" value="1" /> <input id="element_20_2" name="entregables[]" class="element checkbox" type="checkbox" value="2" /> <input id="element_20_3" name="entregables[]" class="element checkbox" type="checkbox" value="3" /> la forma que lo inserto es delimitado por comas, hasta alli entiendo perfectamente el funcionamiento , el nombre lo guardo como un array de "x" elementos cuando lo proceso lo hago con la siguiente linea: (delimitado por comas como lo mencione $entregables= implode(",",$_POST['entregables']); y bueno luego simplemente lo inserto así $qry = "INSERT INTO ingenieria (entregables) VALUES ('$entregables')"; Así de simple, pero se me hace un mundo comprender el funcionamiento al reves, lo que quiero es mostrarlos en otra formulario los 3 checkbox, pero solo marcados los que fueron seleccionados, debo usar la misma funcion delimitada por comas. Saludos y muchas gracias por tu respuesta anterior |
| |||
Respuesta: Insertar y listar checkbox Yo tenía una ídea así: Primero cargo mi tabla con todos mis checkbox y luego hago otro query para consultar especificamente la columna donde tengo mi datos por ejemplo 1,2 tengo esto de antemano , con esto listo todos mis checkbox ahora bien la comprobacion como la podria hacer?, una forma como tu mencionaas comprobar si existe cierto? si es asi ponerle selected, pero osea hago otro query mas abajo luego del while? <?php $conexion=mysql_connect("localhost","root","mysql" )or die("Problemas en la conexion"); mysql_select_db("gerenciador",$conexion) or die("Problemas en la seleccion de la bd"); $registros=mysql_query("select id,nombre_e from chk_entregables",$conexion) or die("Problemas en el select:".mysql_error()); while($reg=mysql_fetch_array($registros)) { echo "<input type='checkbox' name='entregables[]' value='$reg[id]'> $reg[nombre_e]<br>"; } ?> |
| ||||
Respuesta: Insertar y listar checkbox Pues la idea es hacer lo contrario a lo que has hecho. Cuando hagas las consulta a la base de datos del campo entregables te vendrá una cadena de números (ya que value son números) separados por comas, pongamos que los tienes en $row['entregables']. Haces lo contrario al inplode, explode: $entregables = explode(",", $row['entregables']); Ahora tienes en $entregables un array en que cada elemento es un entero con un value. Vuelves a montar los inputs, pero añadiendo una comprobación para ver si los checkeas o no: Código PHP: Espero que con esto te sirva. Un saludo.
__________________ ¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis? Última edición por vgonga1986; 19/07/2011 a las 10:07 Razón: Me faltaba un paréntesis por ahí |
| |||
Respuesta: Insertar y listar checkbox Gracias enormemente por tu paciencia y ganas de ayudar. Lo puse así , pero como que me salen 3 columnas de checkbox : Notice: Undefined variable: row in E:\Software colaborativo\opengoo_1.3.1\opengoo\form\form\olive r.php on line 3 "; "; "; "; "; "; "; "; "; "; "; "; "; "; "; No entiendo porque me sale error si cerre bien la ultima y todo , espero no abusar de ud. <?php //resultados $entregables = explode(",", $row['entregables']); $conexion=mysql_connect("localhost","root","mysql" )or die("Problemas en la conexion"); mysql_select_db("gerenciador",$conexion) or die("Problemas en la seleccion de la bd"); $registros=mysql_query("select id_documento,entregables from ingenieria",$conexion) or die("Problemas en el select:".mysql_error()); while($reg=mysql_fetch_array($registros)) { ?> <input id="element_20_1" name="entregables[]" class="element checkbox" type="checkbox" value="1" <?php echo (in_array('1', $entregables)) ? 'checked="checked"' : ''; ?>/>"; <input id="element_20_2" name="entregables[]" class="element checkbox" type="checkbox" value="2" <?php echo (in_array('2', $entregables)) ? 'checked="checked"' : ''; ?>/>"; <input id="element_20_3" name="entregables[]" class="element checkbox" type="checkbox" value="3" <?php echo (in_array('3', $entregables)) ? 'checked="checked"' : ''; ?>/>"; <?php echo "<br>"; } ?> |
| ||||
Respuesta: Insertar y listar checkbox Vamos a ver, hay que pensar un poco, creo que me estoy esforzando bastante en responderte y explicartelo para que lo entiendas, pero no te lo voy a dar hecho. Cuando yo te dije que usaras esta línea $entregables = explode(",", $row['entregables']); te dije que eso era suponiendo que tenías en esa variable los resultados de la base de datos. Obviamente si no creas esa variable no va a salir de la nada, por eso te da el error. El otro error que te da es porque sobran los "; del final de cada línea del while, serán de algún echo que tenías antes y has borrado, porque en el código que yo te puse y del que has hecho copy-paste no estaban. En serio, tengo paciencia y no me importa poner post grandes explicando todo paso por paso, pero si noto que el otro no tiene ningún interés en aprender a hacerlo y entenderlo y lo único que quiere es el código hecho, te aseguro que no gasto ni una palabra más. Un saludo, espero que pienses un poco y veas las cosas, porque con lo que te he explicado hay más que de sobra para hacerlo bien.
__________________ ¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis? |
Etiquetas: |