Comunidad de diseño web y desarrollo en internet online

arreglo en combo

Citar            
MensajeEscrito el 26 Jun 2008 05:42 pm
hola amigos:

tengo un problema bastante tonto, pero que me tiene con los pies para arriba y la cabeza para abajo, es el siguiente:

tengo un arreglo ($tabla_cat) con dos dimensiones que contiene id y categoria, necesito recorrerlo e ir llenando un combo con el , pero no me resulta, no me entrega el resultado deseado, he probado con for y con foreach pero hay algo que hago mal y no se que es... despues de muuuuchas modificaciones esto es lo que tengo:

Código :

<select name="categoria">
<option value="0">Seleccione categoria</option>
 <? 
for ($i=0; $i <= count($tabla_cat) ; $i++) {
 ?>
<option value= <? echo $tabla_cat['id'] ?> > <? echo $tabla_cat['categoria'] ?> </option>
<?   } ?> 
</select>




porfa que alguien me ayude, gracias

Por pmallea

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Jun 2008 08:18 pm
Hay varias formas de hacerlo
por ejemplo, en vez de tener un array multidimensional, creamos uno aosciativo (valor => id)

Código :

<select name="categoria1">
<?php
$a2 = array(
   "uno" => 1,
   "dos" => 2,
   "tres" => 3,
   "diecisiete" => 17
);
foreach($a2 as $k => $v) {
   ?>
   <option value=<?php echo $v ?>><?php echo $k ?></option>
<?php
}
?>
</select>



Ahora si es multidimencional, pues tambien se puede.

Código :

<select name="categoria2">
<?php
$a[0][0] = "1";
$a[0][1] = "One";
$a[1][0] = "2";
$a[1][1] = "Two";
$a[2][0] = "3";
$a[2][1] = "Three";
foreach($a as $v1) {
   ?>
   <option value=<?php echo $v1[0] ?>><?php echo $v1[1] ?></option>
<?php
}
?>
</select>



A ver si te sirve

Por rolv

Claber

2000 de clabLevel

3 tutoriales

 

firefox
Citar            
MensajeEscrito el 26 Jun 2008 08:37 pm
muchas gracias.
probe con el arreglo asociativo que mensionas, pero no me sirve porque lo que me muestra en el combo es el valor el id y de la categoria del primer registro, y en el fondo lo que yo quiero es que el combo me muestre todas las categorias pero sus valores internos sean el id que le corresponda... el codigo con arreglo asociativo lo hice de la siguiente manera

<select name="categoria">
<option value="selec">Seleccione categoria</option>
<?
foreach($tabla_cat as $k => $v) { ?>

<option value= <?php echo $k ?> > <?php echo $v ?> </option>
<? } ?>
</select>
gracias

Por pmallea

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Jun 2008 08:43 pm
puedes postear los valores de tu array, por favor?

Por rolv

Claber

2000 de clabLevel

3 tutoriales

 

firefox
Citar            
MensajeEscrito el 26 Jun 2008 10:13 pm
claaro... mi arreglo tiene los siguientes valores

id categoria
1 antenas
2 motores
3 relojes
4 estrellas

y lo que me muestra en el combo es

1
antenas



asi tal cual..... gracias por ayudarme..

Por pmallea

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Jun 2008 11:04 pm
Segun entiendo quieres una de estas dos ociones XD XD

Código :

<select name="categoria1">
<?php
$a2 = array(
   "antenas" => 1,
   "motores" => 2,
   "relojes" => 3,
   "estrellas" => 17
);
foreach($a2 as $k => $v) {
   ?>
   <option value=<?php echo $k ?>><?php echo $v ?></option>
<?php
}
?>
</select>



Código :

<select name="categoria2">
<?php

$a3 = array(
   "antenas" => 1,
   "motores" => 2,
   "relojes" => 3,
   "estrellas" => 17
);
foreach($a3 as $k => $v) {
   ?>
   <option value=<?php echo $v ?>><?php echo $k ?></option>
<?php
}
?>
</select>



Los que te devuelven algo como


Es lo que necesitas?

Por rolv

Claber

2000 de clabLevel

3 tutoriales

 

firefox
Citar            
MensajeEscrito el 27 Jun 2008 08:15 am
Antes deberías asegurarte de que la matriz está bien formada, y devuelve los resultados que esperas. De paso, también ver que la dimensión de la matriz, está bien capturada.

Código :

print_r ($tabla_cat);
echo "\r\nDIMENSIÓN DE LA MATRIZ: ".count($tabla_cat);
echo "\r\n";


En tu primer post, te falta recorrer la matriz con su "$i"
No deberías tener problemas con tu primer script (modificado) de tu primer post del hilo.
Pero no me gusta cómo lo escribes.
Yo lo haría así:

Código :

<pre><?php
echo '<select name="categoria"><option value="0">Seleccione categoria</option>';
for ($i=0;$i<count($tabla_cat);$i++)
{echo '<option value="'.$tabla_cat[$i]['id'].'">'.$tabla_cat[$i]['categoria'].'</option>'; }
echo '</select>';
?></pre>


Por cierto. La construcción de la matriz, debería ser:

Código :

$tabla_cat = array (array ('id'=>1,'categoria'=>'primera'),array ('id'=>2,'categoria'=>'segunda'),array ('id'=>3,'categoria'=>'tercera'),array ('id'=>4,'categoria'=>'cuarta'));

Por El Oso Amoroso

Claber

1780 de clabLevel

6 tutoriales

 

Madrid, España, Europa, Eurasia, La Tierra, Sist.Solar, Vía Láctea, UNIVERSO

firefox
Citar            
MensajeEscrito el 27 Jun 2008 01:53 pm
siiiiiii, muchas gracias, ahora si que resulto la cosa, creo que andaba un poco confundida con el tema de los arreglos, gracias por aclararme la pelicula...saludos

Por pmallea

13 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.