Foros del Web » Programando para Internet » PHP »

Ayuda con checkboxes y php

Estas en el tema de Ayuda con checkboxes y php en el foro de PHP en Foros del Web. Buenas. Estoy generando unos checkboxes a traves de una consulta, que al igresar el ID de una persona deberia mostrar las opciones que eligio previamente ...
  #1 (permalink)  
Antiguo 20/01/2010, 23:37
 
Fecha de Ingreso: septiembre-2009
Mensajes: 40
Antigüedad: 14 años, 7 meses
Puntos: 0
Ayuda con checkboxes y php

Buenas.

Estoy generando unos checkboxes a traves de una consulta, que al igresar el ID de una persona deberia mostrar las opciones que eligio previamente ademas de las opciones que no selecciono.

Logro hacer que aparezcan los checkboxes de acuerdo a las opciones que puede elegir el usuario mas no logro marcar como checked los que fueron seleccionados.

Asi va el codigo por ahora:

Código:
<?php 
					
					$sql2="SELECT * FROM tipo_productos ORDER BY descripcion_tipo ASC";
					 $query2=mysql_query($sql2);					
					$conteo=mysql_num_rows($query2);
					$i=0;
					$z=0;
					$x=0;
$m=0;
$tiposdeproducto= array();
$productosseleccionados= array();
$id_tipos= array();
$y=0;
					
   $productos="SELECT    proveedor_tipoproducto.id_proveedor , tipo_productos.descripcion_tipo, tipo_productos.id_tipo
FROM
    hemodinamia.proveedor_tipoproducto  INNER JOIN hemodinamia.tipo_productos    ON (proveedor_tipoproducto.id_tipo = tipo_productos.id_tipo) WHERE id_proveedor='".$_POST['busca_proveedor']."' ORDER BY descripcion_tipo ASC";
		
$query_productos=mysql_query($productos);
					 
while($tipos= mysql_fetch_assoc($query2)){
							
		while($productos_seleccionados= mysql_fetch_assoc($query_productos)){

						$productosseleccionados[$x]= $productos_seleccionados['descripcion_tipo'];
						$x++;                                                                             }
			
						$tiposdeproducto[$z]=$tipos['descripcion_tipo'];
						$id_tipos[$z]=$tipos['id_tipo'];
					    $z++;
						}


$count_tipos= array_count_values($id_tipos);
						
	
      foreach($tiposdeproducto as $a){
	  
	  while($i<=$conteo && $m<$conteo && $y<$count_tipos){
	  foreach($productosseleccionados as $b){
	  
	  if($a==$b){
	  
						 $i++;echo "<input name='tipo_producto".$i."'"; echo "type='checkbox' value='".$id_tipos[$y]."'";
						echo "checked='checked'/>";
						echo "&nbsp;".$tiposdeproducto[$m]."<br>";
						$y++;
						$m++;}
				else{
						$i++;echo "<input name='tipo_producto".$i."'"; echo "type='checkbox' value='".$id_tipos[$y]."'";
						 echo "/>";
						
		echo "&nbsp;".$tiposdeproducto[$m]."<br>";
		$y++;
		$m++;}}
   
}}
De esta manera guardo en 'tiposdeproducto' todos las opciones elegibles por el usuario y en teoria 'productosseleccionados' almacena lo que eligio el usuario y con los foreach los comparo para mostrar como checked los que han sido elegidos, pero no me esta funcionando

Apreciaria cualquier tipo de ayuda con esto

Última edición por Agrus; 21/01/2010 a las 00:06 Razón: Acomodar todo el codigo para que fuera algo mas entendible :P
  #2 (permalink)  
Antiguo 21/01/2010, 06:13
Avatar de valenti_92  
Fecha de Ingreso: enero-2010
Ubicación: Manresa
Mensajes: 126
Antigüedad: 14 años, 3 meses
Puntos: 4
Respuesta: Ayuda con checkboxes y php

Prueva a poner esto dentro del chek:
Código PHP:
Ver original
  1. <?php if($variable == "valor que tu decidas"){echo "checked=checked"} ?>
Espero te sirva.
  #3 (permalink)  
Antiguo 21/01/2010, 12:12
 
Fecha de Ingreso: septiembre-2009
Mensajes: 40
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Ayuda con checkboxes y php

No puedo ponerle las condiciones que yo quiera porque son valores que han sido seleccionados por el usuario y no seran los mismos siempre
  #4 (permalink)  
Antiguo 21/01/2010, 12:19
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Ayuda con checkboxes y php

Cita:
Iniciado por Agrus Ver Mensaje
No puedo ponerle las condiciones que yo quiera porque son valores que han sido seleccionados por el usuario y no seran los mismos siempre
Código PHP:
if ($variable == $valor_seleccionado_por_el_usuario// ... 
bueno, eso es obvio... pero puedes pensarlo un poco y reflexionar, ¿de donde vas a sacar dichos datos a comparar??

si son definidos por el usuario, pues implementa una solución a ello... si no, pues, ¿que hacer??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 21/01/2010, 13:16
 
Fecha de Ingreso: septiembre-2009
Mensajes: 40
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Ayuda con checkboxes y php

O salen todos "checked" o salen sin ello.
  #6 (permalink)  
Antiguo 21/01/2010, 13:24
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Ayuda con checkboxes y php

mira, en teoría se trata de tener una colección con los IDs de los elementos seleccionados por el usuario...

Código PHP:
$foo = array(135); 
ahí, ya tenemos los elementos 1, 3 y 5 de nuestra lista...

ahora debemos iteras la lista completa, y solo marcar los que ya tenemos
Código PHP:
$bar = array(0123456789);
foreach (
$bar as $key => $value)
{
  if (
in_array($value$foo)) echo ' checked="checked" ';
  
// ...

el concepto es el mismo, simplemente comparamos si ya existe el valor en una lista previa...

obviamente tu debes entender que $bar y $foo son valores que reconoces como la lista de valores en la BD, y los valores del usuario... algo así como productos y productos seleccionados, respectivamente... (:
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 21/01/2010, 13:37
 
Fecha de Ingreso: septiembre-2009
Mensajes: 40
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Ayuda con checkboxes y php

Dios mio, muchisimas gracias por la ayuda y la paciencia Pate, ya me funciono :D

Etiquetas: checkboxes
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:34.