Foros del Web » Programando para Internet » PHP »

problema foreach en un retun

Estas en el tema de problema foreach en un retun en el foro de PHP en Foros del Web. hola, cuando meto un foreach en un retun me da este error "Parse error: syntax error, unexpected T_FOREACH in" estoy utilizando este codigo Código PHP: ...
  #1 (permalink)  
Antiguo 06/09/2012, 08:30
Avatar de raid_  
Fecha de Ingreso: diciembre-2010
Mensajes: 132
Antigüedad: 13 años, 4 meses
Puntos: 12
problema foreach en un retun

hola, cuando meto un foreach en un retun me da este error
"Parse error: syntax error, unexpected T_FOREACH in"

estoy utilizando este codigo


Código PHP:
function Print_price_fileds($cnt$p null) {
if (
$p === null){
    
$a $b $c '';
}else{
    
$a $p['n'];
    
$b $p['d'];
    
$c $p['p'];
}


return 
'
<li>
    <label>Nr :</label> 
     <select name="price_data[$cnt][n] id="gender" >

            
            ' 
foreach (get_terms 'cat'$args ) as $tag)
            {
            
$ciudad1 get_option('price_data');;
    
            if( 
$ciudad1 == $tag->name   ) {
            echo 
'<option value="'$tag->name .'"  selected="slelected"  >'.$tag->name.'</option>';
            } else {
            echo 
'<option value="'$tag->name .'">'.$tag->name.'</option>';
            }
            } 
'
 
        
        </select>
    
</li>

    <label>Description :</label>
    <input type="text" name="price_data[$cnt][d]" size="50" value="$b"/>

    <label>Price :</label>
    <input type="text" name="price_data[$cnt][p]" size="20" value="$c"/>
    <span class="remove">Remove</span>
</li>
'
;
}

y por mas que pruebo y miro no encuentro el error,

gracias
  #2 (permalink)  
Antiguo 06/09/2012, 08:58
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 18 años, 11 meses
Puntos: 79
Respuesta: problema foreach en un retun

tienes que tomarte la molestia de revisar tu código...
por ejemplo aquí:
Código PHP:
Ver original
  1. <select name="price_data[$cnt][n] id="gender" >
te fijas donde está el error ?
por mi parte no uso comilla simple ' prefiero la doble " y para escapar a ella \"
ademas que no te olvides de concatenar con puntos y los return los trabajo por lo general linea a linea, asi...
Código PHP:
Ver original
  1. $retu .= "<li>";
  2. $retu .= "<label>Nr :</label>";
  3. $retu .= "<select name=\"price_data[$cnt][n]\" id=\"gender\" >";
  4. $retu .= .............
  5.  
  6. return $retu;

salu2
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #3 (permalink)  
Antiguo 06/09/2012, 09:55
Avatar de raid_  
Fecha de Ingreso: diciembre-2010
Mensajes: 132
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: problema foreach en un retun

Gracias por la ayuda, y perdona mi torpeza, pero sigo teniendo el mismo problema

este es el codigo
Código PHP:
Ver original
  1. function Print_price_fileds($cnt, $p = null) {
  2. if ($p === null){
  3.     $a = $b = $c = '';
  4. }else{
  5.     $a = $p['n'];
  6.     $b = $p['d'];
  7.     $c = $p['p'];
  8. }
  9.    $retu .= "  <label>Nr :</label> ";
  10.    $retu .= " <select name=\"price_data[$cnt][n]\" id=\"gender\" > ";
  11.    $retu .= foreach (get_terms( "category", $args ) as $tag)
  12.             {
  13.             $practicas1 = esc_attr( get_the_author_meta( 'practicas', $user->ID ) );
  14.    
  15.             if( $practicas1 == $tag->name   ) {
  16.             echo '<option value="'. $tag->name .'"  selected="slelected"  >'.$tag->name.'</option>';
  17.             } else {
  18.             echo '<option value="'. $tag->name .'">'.$tag->name.'</option>';
  19.             }
  20.             };
  21.         $retu .= "</select>";
  22.     $retu .= " </li>";
  23.     $retu .= " <label>Description :</label>";
  24.         $retu .= "  <input type=\"text\" name=\"price_data[$cnt][d]\" size=\"50\" value=\"$b\"/>";
  25.  
  26. return $retu;
  27. }

de esta forma da error,
si pongo el foreach entre comillas, en el select sale el codigo, (mirando el codigo fuente), he probado a poner las comillas como dijiste, a las simples......
y siempre me da el mismo error unexpected T_FOREACH

Gracias
  #4 (permalink)  
Antiguo 06/09/2012, 10:50
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema foreach en un retun

1. Un bloque tipo if, for, etc. no es una cadena, por ende no la puedes ir concatenando
2. Lo que debes concatenar son los resultados (cadenas) generados dentro del bloque, algo así...

Código PHP:
$foo '';

$foo .= 'bar';

for (
/* ... */) {
  
$foo .= $candy;
}

$foo .= 'does'
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 06/09/2012, 12:09
Avatar de antoniopol  
Fecha de Ingreso: agosto-2012
Ubicación: Valladolid
Mensajes: 114
Antigüedad: 11 años, 8 meses
Puntos: 21
Respuesta: problema foreach en un retun

Como bien dice pateketrueke, tienes concatenar en este caso, los echos de dentro del while así quedaria
Código PHP:
Ver original
  1. $retu .= "  <label>Nr :</label> ";
  2.    $retu .= " <select name=\"price_data[$cnt][n]\" id=\"gender\" > ";
  3.     foreach (get_terms( "category", $args ) as $tag)
  4.             {
  5.             $practicas1 = esc_attr( get_the_author_meta( 'practicas', $user->ID ) );
  6.    
  7.             if( $practicas1 == $tag->name   ) {
  8.             $retu .= '<option value="'. $tag->name .'"  selected="slelected"  >'.$tag->name.'</option>';
  9.             } else {
  10.             $retu .= '<option value="'. $tag->name .'">'.$tag->name.'</option>';
  11.             }
  12.             };
  13.         $retu .= "</select>";
  14.     $retu .= " </li>";
  15.     $retu .= " <label>Description :</label>";
  16.         $retu .= "  <input type=\"text\" name=\"price_data[$cnt][d]\" size=\"50\" value=\"$b\"/>";
  17.  
  18. return $retu;
__________________
>> Blog de desarrollo web.
>> @antoniopol06 amante de la Web =D
  #6 (permalink)  
Antiguo 07/09/2012, 04:51
Avatar de raid_  
Fecha de Ingreso: diciembre-2010
Mensajes: 132
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: problema foreach en un retun

Muchisimas gracias por su ayuda, ya consegui solucionarlo son su ayuda.

Etiquetas: foreach
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 03:22.