Foros del Web » Programando para Internet » PHP »

Checkbox

Estas en el tema de Checkbox en el foro de PHP en Foros del Web. Hola, bueno una pregunta facil, como envio datos desde mi checkbox a MYSQL y los recupero dentro de otro checkbox ? (osea si fue seleccionado ...
  #1 (permalink)  
Antiguo 19/07/2005, 09:21
 
Fecha de Ingreso: junio-2005
Mensajes: 111
Antigüedad: 12 años, 6 meses
Puntos: 0
De acuerdo Checkbox

Hola,

bueno una pregunta facil, como envio datos desde mi checkbox a MYSQL y los recupero dentro de otro checkbox ? (osea si fue seleccionado o no, que esta selleccion sea recuperada en otro checkbox/ que me muestre el numero de items que fueron seleccionados mostrando el checkbox)
**Puedo enviar datos desde el textbox etc... y recuperarlos de la misma forma pero no se como hacerlo con los checkbox, lo he intentado todo lei el FAQ y google pero hay ejemplos dificiles de entender si alguien me explica con un ejemplo sencillo se lo agredeceria.

Evio datos a la BD sin problema:
Código PHP:
<textarea name="Love_ol" cols="50" rows="10" id="Love_ol"></textarea
Y asi los recupero en un text box muy similar:
Código PHP:
<textarea name="Love_ol" cols="50" rows="10" id="Love_ol" value="<?php echo $row_Intructores['Love_ol']; ?>"><?php echo $row_Intructores['Love_ol']; ?></textarea>
  #2 (permalink)  
Antiguo 19/07/2005, 11:49
Avatar de illman  
Fecha de Ingreso: mayo-2001
Mensajes: 115
Antigüedad: 16 años, 7 meses
Puntos: 0
por ejemplo, una forma de hacerlo sería, te explico a grandes rasgos...

<? if ($VARIABLE==VALOR DEL CHECKBOX) { $tmp=" checked"} else { $tmp=""; } ?>
<input type="checkbox" name="NOMBRE" value="VALOR" <? echo $tmp; ?>>

evidentemente tenoemos que tratar de reducir el código, porque como tengas 20 checkbox en la página... va a tener tela comprobar a mano cada un de ellos, pero en esencia esta seria una forma de marcar los valores

Un saludo
  #3 (permalink)  
Antiguo 20/07/2005, 01:15
 
Fecha de Ingreso: junio-2005
Mensajes: 111
Antigüedad: 12 años, 6 meses
Puntos: 0
Illman: Una vez mas gracias por tu ayuda!
Veras soy un novato en PHP digamos que estoy usando PHP un mes como maximo por eso pregunto este tipo de cosas :).

Bueno tengo 5 checkboxes y eso de reducir el codigo me deja preocupado ya que estoy tratando de entender el codigo que pusiste y me deja boca abierto asi que si tienes un minuto y me explicas como redusco el codigo te lo agradeceria.

Gracias de antemano
ps: Por que detestan aqui tanto los checkboxes o esque hay mucha gente que pregunta esto? te lo digo por que cuando busque en el foro habia muchas preguntas y pocas respuestas
  #4 (permalink)  
Antiguo 20/07/2005, 13:12
Avatar de illman  
Fecha de Ingreso: mayo-2001
Mensajes: 115
Antigüedad: 16 años, 7 meses
Puntos: 0
Hola de nuevo, yo no odio los checkboxes, tampoco los utilizo mucho (pero la verdad es que me he dado cuenta cuando leía tu post... no se).

Reducir el código significa que deberías crear una función que te escriba el chexbos sin necesitar de escribir la condición que será exactamente igual para todos los checkbox que utilices de ahora en adelante. Si te fijas un checkbox tiene una sintaxis muy limitada...

<input type="checkbox" name="NOMBRE" value="VALOR"> // cuando no esta marcado
<input type="checkbox" name="NOMBRE" value="VALOR" checked> // cuando debe aparecer marcado

hasta aqui el HTML
Un ejemplo
<?
function checkbox_check ($valor,$comparacion) {
if ($valor==$comparacion) {
$tmp=" checked";
} else { $tmp=""; }
retunr $tmp;
}
/*
Lo que hace la función (echa un poco a saco, pero ya la adaptarás o mejorarás) es recibir el $valor que tendrá el checkbox si aparece marcado, y $comparacion, que será el valor que estas recibiendo, bien sea desde MySQl, bien desde otro formulario, bien por lo que sea

Para aplicarla
*/
?>

<input type="checkbox" name="NOMBRE" value="VALOR" <? echo checkbox_check ("VALOR",$VARIABLE); ?>>

Espero que te sea de ayuda.
  #5 (permalink)  
Antiguo 20/07/2005, 13:43
 
Fecha de Ingreso: noviembre-2003
Mensajes: 383
Antigüedad: 14 años
Puntos: 2
Hola.
Aquí te dejo un ejemplo que te he creado para ver si lo entiendes.

Primero tenemos un formulario 1.php que contiene 5 checkbox.
A TODOS los checkbox le he dado como nombre un array, con lo que podemos referirnos a cada uno segun su indice,¿no?.

1.php
Código HTML:
<form name="pru" method="post" action="2.php">
<input type="checkbox" name="miCheckBox[1]" value="1">
<input type="checkbox" name="miCheckBox[2]" value="2">
<input type="checkbox" name="miCheckBox[3]" value="3">
<input type="checkbox" name="miCheckBox[4]" value="4">
<input type="checkbox" name="miCheckBox[5]" value="5">
<input type="submit">
</form> 

Al picar en el submit enviamos los valores a otra página 2.php.
En esta página recorremos el array y si hemos recibido valor para ese indice del array construimos el checkbox con la opción "checked". Esta opción lo que hace en ponerle la marca de seleccionado al checkbox.

2.php
Código PHP:
<?php
for ($i=1;$i<=5;$i++)                      //recorremos el array ...
{
  if ( 
$miCheckBox[$i]!="" )               //si esa posición del array NO ESTA vacia...
     
{  $checkeado=" checked "; }     //...entonces le añadimos al <input la opción de seleccionado ...
  
else
     {  
$checkeado="";}                  //...en caso contrario NO le ponemos la opción.

  
echo "<input type='checkbox' value=' ".$miCheckBox[$i]." ' ".$checkeado." >";
}

Espero que te ayude
?>
  #6 (permalink)  
Antiguo 21/07/2005, 03:32
 
Fecha de Ingreso: junio-2005
Mensajes: 111
Antigüedad: 12 años, 6 meses
Puntos: 0
illman/pellagofio: Se an pasado , los ejemplos estan muy buenos muchas gracias por su ayuda.

Tengo una pregunta. Si quiero enviar a MYSQL la seleccion y luego recuperarla seria algo asi? Dos formularios uno que envia los datos y otro que recibe (y actualiza de ser necesario).

Formulario:

INDEX.PHP
Código PHP:
<?php 
for ($i=1;$i<=5;$i++)                      //recorremos el array ... 

  if ( 
$miCheckBox[$i]!="" )               //si esa posición del array NO ESTA vacia... 
     
{  $checkeado=" checked "; }     //...entonces le añadimos al <input la opción de seleccionado ... 
  
else 
     {  
$checkeado="";}                  //...en caso contrario NO le ponemos la opción. 

  
echo "<input type='checkbox' value=' ".$miCheckBox[$i]." ' ".$checkeado." >"

?> 
<form name="pru" method="post" action="send.php">
<input type="checkbox" name="miCheckBox[1]" value="1">
<input type="checkbox" name="miCheckBox[2]" value="2">
<input type="checkbox" name="miCheckBox[3]" value="3">
<input type="checkbox" name="miCheckBox[4]" value="4">
<input type="checkbox" name="miCheckBox[5]" value="5">
<input type="submit">
</form>
Envio a MYSQL
SEND.PHP
Código PHP:
<?php
// Set up connection to MySQL
$host "localhost";
$user "root";
$pwd "root";
$dbConn mysql_connect($host,$user,$pwd);
// Connect to newland_tours database
$database "newland_tours";
mysql_select_db($database);
$query_rs_insertCountry "INSERT INTO tbl_instructores (miCheckBox[$i]) 
VALUES
('"
.$_POST['miCheckBox[$i]']."');";
$rs_insertCountry mysql_query($query_rs_insertCountry);
header("Location: index.php");
?>
Recupero la seleccion (aqui pregunto a MYSQL cuales checkbox fueron seleccionados con opcion a cambiar esta seleccion llamar.php / procesar_llamar.php)

llamar.php
Código PHP:
<form name="pru" method="post" action="procesar_llamar.php?ID=1">
<input type="checkbox" name="miCheckBox[1]"  value="<?php echo $row_Intructores['miCheckBox[1]']; ?>"/>
<input type="checkbox" name="miCheckBox[2]"  value="<?php echo $row_Intructores['miCheckBox[2]']; ?>"/>
<input type="checkbox" name="miCheckBox[3]"  value="<?php echo $row_Intructores['miCheckBox[3]']; ?>"/>
<input type="checkbox" name="miCheckBox[4]"  value="<?php echo $row_Intructores['miCheckBox[4]']; ?>"/>
<input type="checkbox" name="miCheckBox[5]"  value="<?php echo $row_Intructores['miCheckBox[5]']; ?>"/>
<input type="submit">
</form>
procesar_llamar.php
Código PHP:
<?php
// Set up connection to MySQL
$host "localhost";
$user "root";
$pwd "root";
$dbConn mysql_connect($host,$user,$pwd);
// Connect to newland_tours database
$database "newland_tours";
mysql_select_db($database);
//Update database
$query_updateInstructores "UPDATE tbl_instructores SET 
miCheckBox[1]='"
.$_POST['miCheckBox[1]']."', 
WHERE ID="
.$_GET['ID'];
$updateInstructores mysql_query($query_updateInstructores);
header("Location: index.php");
?>
Al final voy poner todo el codigo en el forum.

Última edición por _Lobo_; 21/07/2005 a las 03:38
  #7 (permalink)  
Antiguo 21/07/2005, 13:09
Avatar de illman  
Fecha de Ingreso: mayo-2001
Mensajes: 115
Antigüedad: 16 años, 7 meses
Puntos: 0
todo depende de los datos

Hola de nuevo Lobo,.. la opción de utilizar un array como te ha dicho pellagofio es muy correcta, pero la aplicación que le estas dando, si he leido el código correctamente, me dice que no nos estas entendiendo... a ver si con un ejemplo mejor explicado... para ello podrías explicarnos exactamente lo que quieres hacer?
  #8 (permalink)  
Antiguo 22/07/2005, 01:40
 
Fecha de Ingreso: junio-2005
Mensajes: 111
Antigüedad: 12 años, 6 meses
Puntos: 0
Bueno este es el cuadro: Tengo un formulario con 5 checkboxes al hacer mi selección y presionar submit envió mi selección a MYSQL posteriormente recuperare esta selección en otro formulario que de igual manera tendrá los checkbox y me mostrara la selección hecha anteriormente aquí podré modificar estas opciones y al presionar submit se grabaran estas modificaciones en MYSQL. Bueno eso es lo que tengo que hacer la verdad ya lo he hecho con "todos" los otros compoenetes pero los checkbox me están dando un dolor de cabeza .

illman muchas gracias por tu ayuda

ps: el codigo que puse anteriormente esta basado en como tengo mi formulario original y como a mi logica ( ) deveria funcionar tambien con los checkboxes
  #9 (permalink)  
Antiguo 25/07/2005, 12:31
Avatar de illman  
Fecha de Ingreso: mayo-2001
Mensajes: 115
Antigüedad: 16 años, 7 meses
Puntos: 0
A ver a ver

Bueno Lobo, a ver si esto te ayuda:

Tienes un formulario con 5 checks, como no explicas de que va el formulario, asumo que podría tratarse de una pregunta que puede tener varias respuestas, ok?

<form name="pru" method="post" action="send.php">
<input type="checkbox" name="miCheckBox[1]" value="1">
<input type="checkbox" name="miCheckBox[2]" value="2">
<input type="checkbox" name="miCheckBox[3]" value="3">
<input type="checkbox" name="miCheckBox[4]" value="4">
<input type="checkbox" name="miCheckBox[5]" value="5">
<input type="submit">
</form>

No es necesario numerar el array ya que lo hace solo

Recoges los valores del array en el archivo SEND:PHP e introduces los valores en MySQL. Te pongo un ejemplo que te sirve para todos. Debes tener en cuenta que solo llegan los valores que han sido marcados, el resto no te llegan.

<?
// O sea te llegarán las siguientes variables
/*
$_POST['miCheckBox'][1];
$_POST['miCheckBox'][2];
$_POST['miCheckBox'][3];
$_POST['miCheckBox'][4];
$_POST['miCheckBox'][5];
*/
Pues comprobarlo a través de un bucle como te indicaba pellagofio

for ($i=1; i<=5; i++) {

// Compruevas el valor
if (!empty($_POST['miCheckBox'][i]) { // es decir, si tiene valor
// Introduces el valor en la BBD
} else {
//Haz lo que tengas que hacer caundo el usuario no ha marcado la opción, quizás quieres guardar que no ha marcado
}
}
?>

Ten en cuenta dos cosas, cuando lo guardas en la BBDD, supongo que guardas el valor que has recibido, y un cero si no lo has recibido, ok? pero solo para este ejemplo luego lo adaptas como mejor te vaya.

Recuperar datos desde MySQL y montar un nuevo formulario

<?
// conectas a la BBDD, lees los datos y los tienes en un array, objeto,...
// Voy a asumir que los colocas en un array llamado $valores, y voy a utilizar la función que te escribí en un post anterior. Dejo el primer valor vacio, ten en cuenta que los arrays empiezan en la posición 0.

function checkbox_check ($valor,$comparacion) {
if ($valor==$comparacion) {
$tmp=" checked";
} else { $tmp=""; }
retunr $tmp;
}
?>
<form name="pru" method="post" action="send.php">
<input type="checkbox" name="miCheckBox[1]" value="1" <? echo checkbox_check (1,$valores[1]); ?>>
<input type="checkbox" name="miCheckBox[2]" value="2" <? echo checkbox_check (2,$valores[2]); ?>>

// y así sucesivamente

<input type="submit">
</form>

Cuando mandamos funcionaría igual que en el archivo anterior, solo que editando en lugar de insertando (update en lugar de INSERT).

Espero que te sirva de ayuda
U saludo
  #10 (permalink)  
Antiguo 28/07/2005, 08:43
 
Fecha de Ingreso: junio-2005
Mensajes: 111
Antigüedad: 12 años, 6 meses
Puntos: 0
gracias por tu ayuda!

Ok vamos por partes send.php seria asi?

Código PHP:
<?php
// Set up connection to MySQL
$host "localhost";
$user "root";
$pwd "root";
$dbConn mysql_connect($host,$user,$pwd);
// Connect to newland_tours database
$database "newland_tours";
mysql_select_db($database);
$query_rs_insertCountry "INSERT INTO tbl_instructores (
miCheckBox[1],
miCheckBox[2],
miCheckBox[3],
miCheckBox[4],
miCheckBox[5]) 
VALUES
('"
$_POST['miCheckBox'][1]."',
'"
$_POST['miCheckBox'][2]."',
'"
$_POST['miCheckBox'][3]."',
'"
$_POST['miCheckBox'][4]."',
'"
$_POST['miCheckBox'][5]."'
);"
;

for (
$i=1i<=5i++) {
// Compruevas el valor
if (!empty($_POST['miCheckBox'][i]) { // es decir, si tiene valor
// Introduces el valor en la BBD
} else {
//Quizás quieres guardar que no ha marcado. COMO ? 
}
}

$rs_insertCountry mysql_query($query_rs_insertCountry);
header("Location: administration.php");
?>
ya que me esta dando errores
  #11 (permalink)  
Antiguo 28/07/2005, 13:57
Avatar de illman  
Fecha de Ingreso: mayo-2001
Mensajes: 115
Antigüedad: 16 años, 7 meses
Puntos: 0
no, no puedes poner un array miCheckBox[1] como campo de la base de datos. Y tienes la introducción fuera de la condición.
POr como estas haciendo el INSERT debes tener una tabla tbl_instructores con 5 campos para almacenar las 5 posibles respuestas. si?
Como guardar un valor no marcado, pues teniendo un valor predeterminado, por ejemplo cero (0).
  #12 (permalink)  
Antiguo 02/08/2005, 01:34
 
Fecha de Ingreso: junio-2005
Mensajes: 111
Antigüedad: 12 años, 6 meses
Puntos: 0
Cita:
Iniciado por illman
no, no puedes poner un array miCheckBox[1] como campo de la base de datos. Y tienes la introducción fuera de la condición.
Entonces como lo hago ?

Cita:
Iniciado por illman
POr como estas haciendo el INSERT debes tener una tabla tbl_instructores con 5 campos para almacenar las 5 posibles respuestas. si?
Si, tengo los 5 campos.

Cita:
Iniciado por illman
Como guardar un valor no marcado, pues teniendo un valor predeterminado, por ejemplo cero (0).
El valor predeterminado debe ir en el formulario no?
  #13 (permalink)  
Antiguo 02/08/2005, 02:11
 
Fecha de Ingreso: febrero-2004
Ubicación: España. Madrid
Mensajes: 454
Antigüedad: 13 años, 9 meses
Puntos: 0
una pregunta mas.. la unica forma de leer lo que has pulsado es hacer un submit? me refiero no se puede leer el valor marcado, para p.ej desplegar otras opciones en la misma página según el checkbox marcado
no se.. por comparar de alguna manera a los eventos de visual basic, hacer algo parecido al Check1_Click de VB, no se puede hacer algo parecido sin tener que hacer un submit de un formulario?

saludos
  #14 (permalink)  
Antiguo 02/08/2005, 04:20
Avatar de illman  
Fecha de Ingreso: mayo-2001
Mensajes: 115
Antigüedad: 16 años, 7 meses
Puntos: 0
aclaraciones

Código PHP:
<?php
// Set up connection to MySQL
$host "localhost";
$user "root";
$pwd "root";
$dbConn mysql_connect($host,$user,$pwd);
// Connect to newland_tours database
$database "newland_tours";
mysql_select_db($database);

// Como tienes los valores en columnas en lugar de filas compruebas los valores antes de realizar el INSERT

for ($i=1i<=5i++) {
// Compruevas el valor
if (!empty($_POST['miCheckBox'][i]) { // es decir, si tiene valor
$valor[i]=$_POST['miCheckBox'][i];
} else {
//Le damos el predeterminado en este caso cero
$valor[i]=0;
}
}

$query_rs_insertCountry "INSERT INTO tbl_instructores (
miCheckBox[1], // coloca aquí el nombre del campo de la base de datos donde quieres que vaya colocado el valor
miCheckBox[2], //IDEM
miCheckBox[3], //IDEM
miCheckBox[4], //IDEM
miCheckBox[5] //IDEM)
VALUES
('"
.$valor[1]."', 
'"".$valor[2]."',
'".$valor[3]."',
'".$valor[4]."',
'".$valor[5]."
);";



$rs_insertCountry = mysql_query($query_rs_insertCountry);
header("
Locationadministration.php");
?>
  #15 (permalink)  
Antiguo 02/08/2005, 07:16
 
Fecha de Ingreso: junio-2005
Mensajes: 111
Antigüedad: 12 años, 6 meses
Puntos: 0
ok hise los cambios y me da un error en la linea 13:
Código PHP:
for ($i=1i<=5i++) { 
Parse error: syntax error, unexpected T_INC, expecting ')' in e:\wamp\www\instructores\Admin3\insert_processor.p hp on line 13

Muchismas gracias por haber comentado el script

Ok aqui el codigo que me da el error:
Código PHP:
<?php 
// Set up connection to MySQL 
$host "localhost"
$user "root"
$pwd "root"
$dbConn mysql_connect($host,$user,$pwd); 
// Connect to newland_tours database 
$database "newland_tours"
mysql_select_db($database); 

// Como tienes los valores en columnas en lugar de filas compruebas los valores antes de realizar el INSERT 

for ($i=1i<=5i++) { 
// Compruevas el valor 
if (!empty($_POST['miCheckBox'][i]) { // es decir, si tiene valor 
$valor[i]=$_POST['miCheckBox'][i]; 
} else { 
//Le damos el predeterminado en este caso cero 
$valor[i]=0


$query_rs_insertCountry "INSERT INTO tbl_instructores (
Cycling,       
NS,      
Nautilus,      
Silver,      
Gold ) 
VALUES
(
'"
.$valor[1]."', 
'"".$valor[2]."', 
'".$valor[3]."', 
'".$valor[4]."', 
'".$valor[5]." 
);"; 

$rs_insertCountry = mysql_query($query_rs_insertCountry); 
header("
Locationadministration.php"); 
?>
  #16 (permalink)  
Antiguo 04/08/2005, 09:36
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
En esta linea te falta un parentesis de cierre: if (!empty($_POST['miCheckBox'][i])
debiera ser:

if (!empty($_POST['miCheckBox'][i]))
  #17 (permalink)  
Antiguo 05/08/2005, 01:26
 
Fecha de Ingreso: junio-2005
Mensajes: 111
Antigüedad: 12 años, 6 meses
Puntos: 0
Cita:
Iniciado por claudiovega
En esta linea te falta un parentesis de cierre: if (!empty($_POST['miCheckBox'][i])
debiera ser:

if (!empty($_POST['miCheckBox'][i]))
Muchas gracias Caludio. Hise los cambios pero me da el mismo error en la misma linea:

Parse error: syntax error, unexpected T_INC, expecting ')' in e:\wamp\www\instructores\admin4_test\insert_proces sor.php on line 13
for ($i=1; i<=5; i++) {

Alguna idea?
  #18 (permalink)  
Antiguo 05/08/2005, 06:53
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
.. ¿no es $i???
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #19 (permalink)  
Antiguo 05/08/2005, 07:05
 
Fecha de Ingreso: junio-2005
Mensajes: 111
Antigüedad: 12 años, 6 meses
Puntos: 0
Cita:
Iniciado por jam1138
.. ¿no es $i???
Ok hise los cambios y me sigue dando error en la misma linea
Parse error: syntax error, unexpected T_INC, expecting ')' in e:\wamp\www\instructores\admin4_test\insert_proces sor.php on line 11
Linea 11 :
Código PHP:
for (i=1i<=5i++) { 

Código PHP:
// Set up connection to MySQL 
$host "localhost"
$user "root"
$pwd "root"
$dbConn mysql_connect($host,$user,$pwd); 
// Connect to newland_tours database 
$database "newland_tours"
mysql_select_db($database); 
// Como tienes los valores en columnas en lugar de filas compruebas los valores antes de realizar el INSERT 
for (i=1i<=5i++) { 
// Compruevas el valor 
if (!empty($_POST['miCheckBox'][i])) { // es decir, si tiene valor 
$valor[i]=$_POST['miCheckBox'][i]; 
} else { 
//Le damos el predeterminado en este caso cero 
$valor[i]=0

  #20 (permalink)  
Antiguo 05/08/2005, 07:14
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Me la aguanté hace rato... ahora no puedo>>>

... haber si ahora me explico: ¿no debe de ser $i?...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #21 (permalink)  
Antiguo 05/08/2005, 07:18
 
Fecha de Ingreso: junio-2005
Mensajes: 111
Antigüedad: 12 años, 6 meses
Puntos: 0
Haber si entiendo: antes lo tenia asi (mira mi ultimo post con el codigo):

for ($i=1; i<=5; i++) {

y ahora asi for (i=1; i<=5; i++) {

sin embargo me sigue dando errores


Cita:
Iniciado por jam1138
Me la aguanté hace rato... ahora no puedo>>>

... haber si ahora me explico: ¿no debe de ser $i?...
  #22 (permalink)  
Antiguo 05/08/2005, 07:28
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
(sus)... de plano no sabes PHP ... me disculpo, no lo sabía (no me dí cuenta que llevas poniendo como 4 post con el mismo problema)... pero es básico eso.

Lo correcto es
Código PHP:
for ($i=1$i<=5$i++) { 
www.php.net/manual
www.php.net/language.variables
www.php.net/for

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #23 (permalink)  
Antiguo 05/08/2005, 07:47
 
Fecha de Ingreso: junio-2005
Mensajes: 111
Antigüedad: 12 años, 6 meses
Puntos: 0
pues de plano te digo: tienes Razon llevo muy poco con PHP (un mes)

bueno esto es demencial ise los cambios:
Código PHP:
for ($i=1$i<=5$i++) { 
y aun me da este error:
Parse error: syntax error, unexpected T_INC, expecting ')' in e:\wamp\www\instructores\admin4_test\insert_proces sor.php on line 11
  #24 (permalink)  
Antiguo 10/08/2005, 01:49
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Pareciera estás a la espera de lo que se te diga aquí; ¿qué probaste??... solo por curiosidad ¿cambiaste todas las "i" (que manejes como variables) por "$i"??

El cómo se define, llama y manipula una variable debe quedar claro desde el comienzo, tema seguido el entender las estructuras de control básicas (if, for, while, do...while), no diré cuánto tiempo ha de tomar esto (cada quien lleva su paso) pero meses no tardas... y claro, esto a lo que concierne a PHP porque antes de PHP también hay que saber lo que es HTML entre otras cosas.

Releyendo el tema para enterarme del asunto (porque honestamente no estaba enterado) ví esto:
Cita:
Iniciado por _Lobo_
Código PHP:
<textarea name="Love_ol" cols="50" rows="10" id="Love_ol" value="<?php echo $row_Intructores['Love_ol']; ?>"><?php echo $row_Intructores['Love_ol']; ?></textarea>
Un textarea NO tiene el atributo "value" (esto error de HTML); para dar un valor predeterminado se coloca entre dichas etiquetas como también haces... pero el error esta ahí.

No es por criticarte (espero no te ofendaz) pero no es nada recomendable (ni sano ) empezar una casa por el techo... antes de hacer lo que pretendes tienes que tener bases en otras cosas más (sumandole a las que ya he mencionado) como en saber recojer valores de un formulario (que según leí tampoco lo sabías), nociones de SQL, entender qué es una matriz!!!... aunque igual puedes trabajar sin ellas haciendo checkboxes independientes ("names" diferentes).

Mira este código el cuál hace mucho de lo que quieres (tendrías que dividirlo):
Código PHP:
<form method="post" action="<?=$_SERVER['PHP_SELF'?>">
Dato 1: <input type="checkbox" name="check[0]" value="valor1"><br>
Dato 2: <input type="checkbox" name="check[1]" value="valor2"><br>
Dato 3: <input type="checkbox" name="check[2]" value="valor3"><br>
Dato 4: <input type="checkbox" name="check[3]" value="valor4"><br>
Dato 5: <input type="checkbox" name="check[4]" value="valor5"><br>
<input type="submit" name="submit" value="Guardar">
</form>
<?php
// Aquí empezamos a recojer los datos
if(isset($_POST['submit'])) {
echo 
"<p>Valores recojidos:<br><blockquote>";
    for(
$i=0$i<5$i++) { // el ciclo
        
if(!empty($_POST['check'][$i])) {
            echo 
"Indice: $i -> Valor: ".$_POST['check'][$i]."<br>";
// aquí agregaría los campos a guardar.. solo los que tienen valor
            
$campos[]= "campo".($i+1); // Solo ilustrativo, tú tendrás que recojer los campos de otra manera
            
$values[]= "'".$_POST['check'][$i]."'";
// aunque igual puedes hacer un if/else como leí sugirieron.. :-D más fácil de entender y aplicar...
        
}
    }
echo 
"</blockquote>";
    
$camposimplode($campos", "); // www.php.net/implode
    
$valuesimplode($values", ");
echo 
"Guardar:<br><blockquote>INSERT INTO tabla(".$campos.") VALUES (".$values.")</blockquote></p>";
}
?>
... es algo que he repetido muchas veces; si buscas verás cosas como: http://www.forosdelweb.com/f18/como-procesar-todos-checkbox-294560/
la diferencia es que es mejor usar foreach() (por trabajar con matricez), pero en el código que dejo hago un for() para seguir con lo que tenías... pero vé esto (como información): http://www.forosdelweb.com/showpost....2&postcount=12

Bien, eso sería para guardar, cuando hagas una consulta (para volverlos a mostrar) basate en que necesitas terminar con lo que originalmente tenías (me refiero a el HTML) para volver a hacer lo mismo (hablando del proceso) al actualizar... suponiendo solo mostrarás un registro, porque si quieres mostrar varias (grupos de checkboxes por registro) tendrías que trabajar con una matríz bidimencional (agregarías el id)... entre otras muchas posibles soluciones... si no sabes de matricez núnca me entenderías.

.... te podría decir más, pero el objetivo de el foro no es enseñar y mucho menos hacer el trabajo de otros... se da por hecho se tiene idea de lo que se habla (códigos que te sugirieron aquí los empleaste en partes donde no tenían que ir) y se ofrece ayuda de acuerdo a ello...

Cualquier duda concreta planteala y se te podrá orientar... no digo que lo del mensaje de error no lo fuese pero esque ví muchos errores --básicos, insisto-- cuando estube buscando el motivo de éste. El mensaje mostrado... no es por esa línea, posiblemente este líneas atrás. Te dice que no esperaba un cierre de paréntesis ")"... quizá dejaste uno abierto antes... .. me perdí viendo muchas otras cosas y me olvidé de ello .

Un saludo y mucha suerte! ... échale ganas!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"

Última edición por jam1138; 10/08/2005 a las 01:54
  #25 (permalink)  
Antiguo 10/08/2005, 05:17
 
Fecha de Ingreso: junio-2005
Mensajes: 111
Antigüedad: 12 años, 6 meses
Puntos: 0
jam1138 , Muchas gracias por tu ayuda la verda es que he provado TODO aun que no creas me he leido muchos post aqui que tratan el tema pero la verdad no pude adaptar ninguna de las soluciones a mi problema. La enviada de datos a MYSQL y la actulaizacion la hago sin problem con un formulario (mira mi primer post en esta linea) a pesar que tengo son un mes con PHP aun estoy en pañales y tal vez me meti a hacer algo muy complicado pero la verdad lo unico que me da problemas es esto de usar checkboxes por el resto todo sin problemas y como tu vez en el inicio de este post mi problem era concreto y jamas pedi que me lo hagan solo una explicacion on un link aun manual pero a medida que avanzaba con el script se hiba complicando y generaba mas problemas.

Voy a probar el script que gentilmente as puesto para mi a ver si lo logro hacer funcionar y sino pues me resigno y usare un textbox y mato a los checkboxes.

Gracias.

pd: Vi un manual en el for que trata el tema seria bueno tener uno mas sencillo ya que si haces una busqueda en el foro hay muchas preguntas sin respuesta sobre el tema.
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 19:56.