Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   heckbox... (https://www.clubdelphi.com/foros/showthread.php?t=1027)

Fr@n 02-06-2003 09:07:11

heckbox...
 
Tema sesiones solucionado... ara tengo una consulta de Oracle, de una lista de personas... cada persona tiene asignado un checkbox, el codigo para saber si está checkeado es :

if ($nomvar)
{
echo "checkeado";
}
else
{
echo "no checkeado";
}

No ??????

Pués como puedo saber que persona es la que lo tiene checkeado y cual no ?? lo he probado haciendo la misma consulta en la pagina siguiente y haciendo:

stmt= ($conn, "select de la lista de personas" );
OCIExecute(stmt);

while (OCIFechtInto($stmt, &$data, OCI_ASSOC)
{
$nom=$data["NOMBRE_PERSONA"];
$ape=$data["APELLIDO_PERS"]

// Y aki pongo el if del checkbox

if ($checkbox)
{
echo "$nom $ape está checkeado";
}
else
{
echo "$nom $ape no está checkeado";
}
}

Pero siempre me pone la última persona mirada tantas veces como filas en el select como si no estuviera checkeado....

Es muy muy muy muy urgente puesto q me juego nota en un trabajo, agradeceria muchiiiiiiisimo un solución o almenos una respuesta aclarando algún posible fallo. Gracias por adelantado!!

roman 02-06-2003 17:15:43

Creo que aquí estamos confundiendo las cosas.

Una cosa es la consulta SQL y otra los valores del formulario como los recibe PHP.

Primero asegurate de estar recibiendo correctamente los valores. La página del formulario podría verse así:
Código:

<form method='post' action='consulta.php'>
<input type="checkbox" name="persona1">
<input type="checkbox" name="persona2">
<input type="checkbox" name="persona3">
<input type="submit">
</form>

Y 'consulta.php' recibirá los valores. Aunque la forma que pones para verificarlos puede funcionar lo más correcto sería así:

Código PHP:

check1 = isset($persona1);
check2 = isset($persona2);
check3 = isset($persona3); 

Si estos valores los recibes bien entonces el problema está en cómo haces la consulta. Revísala y luego nos cuentas.

// Saludos

Emilio 02-06-2003 22:31:21

Para controlar checkbox en bucles yo suelo usar algo parecido a esto...

Código PHP:

<!--formulario.php -->
<form name="form" method="post" action="loquesea.php">
<?
while ($row mysql_fetch_array($result)) {
  
?>
  <input name="checkbox[]" type="checkbox" value="<? echo $row["CODIGO"]; ?>">
  aquí todo el HTML que quieras....
  <? 

?>
</form>

Código PHP:

<?
// loquesea.php
for ($i 0$i <= count$checkbox ); $i++) {
  echo 
"El cliente código ".$checkbox[$i]." ha sido seleccionado<br>";
}
?>

Ten en cuenta que checkbox no chequeados no son enviados por POST, por lo tanto si tienes 100 checkbox y sólo tres de ellos chequeados, únicamente esos serán enviados.

hacer uso de isset() está bien en ocasiones para controlar si recibimos o no un check, pero en bucles que generan los check no es muy buena técnica ya que a priori no sabes cuantos tienes que generar y controlar un chorro tan largo tendrías que hacer piruetas para asignarle valores y para controlar cuales llegan, por el contrario el uso de arrays en HTML en estos casos es más eficiente.

Saludos
Emilio


La franja horaria es GMT +2. Ahora son las 02:37:26.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi