Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

PHP OO foreach que estoy ahcaiendo mal ??

Estas en el tema de foreach que estoy ahcaiendo mal ?? en el foro de Frameworks y PHP orientado a objetos en Foros del Web. esta es mi clase.... Código PHP: <? //include("../conexion.php");      class  Ingrediente {                  private  $lista =array();                  function  main ( $regis , $id , $tipo ...
  #1 (permalink)  
Antiguo 29/01/2011, 19:46
Avatar de marieta_lovegood  
Fecha de Ingreso: julio-2009
Ubicación: Cochabamba, Bolivia, Bolivia
Mensajes: 24
Antigüedad: 15 años, 5 meses
Puntos: 0
Pregunta foreach que estoy ahcaiendo mal ??

esta es mi clase....

Código PHP:
<?
//include("../conexion.php");
    
class Ingrediente{
        
        private 
$lista=array();
        
        function 
main($regis,$id,$tipo){
            
$this->formulario();
        }
        
        function 
formulario(){
            echo 
'<div class="componentheading"> Nuevo Ingrediente</div>';?> 
            <form action="menu/IngresarNuevoingrediente.php" method="post" name="ingrediente" id="ingrediente">
                <table width="100%" bordercolor="#006600" bordercolordark="#003300" border="4" cellspacing="2" cellpadding="0">
                  <tr>
                    <td>Nombre</td>
                    <td><input name="nombre" type="text" size="50" maxlength="90" onChange='texto(100,5,"errorNombre",document.ingrediente.nombre.value,"flagN");'>
                    <input type="hidden" value="1" id="flagN" name="flagN"></td>
                    <td id="errorNombre" style="visibility:hidden">&nbsp;</td>
                          <tr>
            <td>&nbsp;</td>
            <td><input name="Enviar" type="button" onClick='if (contarFlags(["flagN"],"visitas")=="S"){document.ingrediente.submit();};' value="Enviar">&nbsp;&nbsp;&nbsp;<input name="Limpiar" type="reset" value="Limpiar"></td>
            <td id="2" style="visibility:hidden">&nbsp;</td>
          </tr>
          </table>
                </form>
            <?
        
}
        
        function 
obtenerIngredientes(){
            
$bd mysql_select_db ("ingrediente");
            
$query="SELECT * From `ingrediente` where 1 ORDER BY  `idIngrediente` ASC";
            
$res=mysql_db_query("frankffurt",$query);
            
$i=0;
            while(
$row=mysql_fetch_array($res))
            {
                
$this->lista[$i]=array($row["idIngrediente"] => $row["Nombre"]);
                
$i++;
            }
        }
        function  
checBox(){
            
$this->obtenerIngredientes();
            foreach(
$this->lista as $ki => $ing){
                echo 
'<label><input type="checkbox" name="ingredientes" value="'.$ki.'" id="'.$ki.'">'.$ing.'</label><br>';}
        }
    }
?>

cuando llamo a la funcion Checbox()

me muesta el $ing array como nombre del checkbox

<label><input type="checkbox" name="ingredientes" value=1 id=1>Array</label>
<label><input type="checkbox" name="ingredientes" value=2 id=2>Array</label>


que estoy haciendo mal???
  #2 (permalink)  
Antiguo 29/01/2011, 20:37
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: foreach que estoy ahcaiendo mal ??

pues solo te falta acceder al índice correcto de $ing pero como lo asignas mal, lo haces mal...

Código PHP:
// MAL
$this->lista[$i]=array($row["idIngrediente"] => $row["Nombre"]);

// BIEN
$this->lista[$i]=array('id' => $row["idIngrediente"], 'name' => $row["Nombre"]); 
y entonces, dentro ya usas $ing['id'] o $ing['name']
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 30/01/2011, 16:39
Avatar de marieta_lovegood  
Fecha de Ingreso: julio-2009
Ubicación: Cochabamba, Bolivia, Bolivia
Mensajes: 24
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: foreach que estoy ahcaiendo mal ??

GRacias funciona de las mil maravillasss!!! muchas gracias!!!

Etiquetas: foreach, mal
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 13:20.