Frage von Evolution48, 48

was ist an dieser PHP foreach, gefüllt mit HTML falsch?

tag auch, ich habe hier eine foreach schleife die mir besagt das wenn in variable $key der selbe inhalt ist wie in varibale $flag, dann soll er mir das .png bild geben das den selben namen wie $flag hat :

@foreach(array_combine($land_keys, $land_values) 
as $key => $value)
@foreach($all_lands_flag as $flag)
@if(strtolower($key) == $flag                         <tr>                                                  <td><img src="/flags/{{$flag}}.png"/></td>
<td width="86%">{{$key}}</td>
<td>{{$value}}</td>
</tr>
@endif
@endforeach
@endforeach

ich hoffe man kann das gut lesen weil die vorschau sieht grausig aus..

jedenfalls wird mir garnichts ausgegeben, weder die flagge noch die namen..

in $al_lands_flag stehen ganz viele flaggen namen drinnne, in flag also alle einzelnen flaggen-namen

in $key ebenfalls einzelne fahnne namen

und halt im html teil mit dem hole ich das bild mittels {{$flag}}.png raus - aber es wird mir garnichts angezeigt - wenn ich die zweite foreach + if klause wegnehme und statt {{$flag}} einfach deutschland.png eingebe, gibt mir die foreach die deutschland fahne zurück - mit dieser ( denke fehlerfreien ) anderen foreach, wird aufeinmal die ganze ausgabe behindert

jemand eine idee?

mfg

Antwort
von MaganRevan, 23

Hallo,

also ich hätte es wahrscheinlich so geschrieben:

foreach(array_combine($land_keys,$land_values) as $key => $value){
foreach($all_lands_flag as $flag){
if(strtolower($key) == $flag){
?>

.png"/>
<?php echo($key); ?>
<?php echo($value); ?>

<?php
}
}
}
?>

Versuch' es mal damit. Benutzt du eine Templateengine?

Kommentar von Evolution48 ,

ja ich benutze das framework laravel :) 

Kommentar von MaganRevan ,

Hi, scheinbar zeigt er meinen Code nicht an. Einen Moment.

Kommentar von MaganRevan ,

Also bei Plane PHP würde ich es so machen

https://gist.githubusercontent.com/maganrevan/665dcc6d592c49310f8e/raw/6f1b31817...

was wird denn bei dir ausgegeben?

Kommentar von Evolution48 ,

bei mir wird garnichts ausgegeben - das ist es ja :) danke für dein programmier vorschlag aber das ist genau das selbe wie meins nur halt ohne laravel framework :) ich rätsel wohl noch etwas weiter :) 

Kommentar von MaganRevan ,

Was wird denn innerhalb der schleife ausgegeben. Hast du mal einen print_r oder einen var_dump gemacht um den Inhalt zu überprüfen? Wenn nichts ausgegeben wird würde er vielleicht garnicht ins if reingehen.

Antwort
von Homero, 3

sieht so aus, als hättest Du Klammerfehler:

Mal Grundsätzlich:

if(Bedingung){

//dann tu dieses

}else{

// sonst tu das hier

}

willst Du html ausgeben, dann nutze z:b.

echo "<table> <tr><td>blabla</td><td>".$variable."</td></tr>></table>.";

Die Asugabe, z.B. HTML Code, musst Du in Hochakammas setzen,

und vorher die Anweisugn geben, das es ausgegeben werden soll. z:b mit

echo "....";

achte auf die Punkte vor und hintr der PHP-Variablen.

Hoffe, es hilft

Antwort
von Evolution48, 24

http://pastebin.com/aLBymeS4 hier nochmal der code - die ausgabe hier sieht zu schlimm zum lesen aus

Antwort
von happyfish2, 6

Vielleicht ist ja auch der Code richtig, und nur die Ausgangsarrays haben nicht die erwarteten Werte.

Antwort
von yerooke, 24

Bist Du dir sicher das dies PHP sein soll? 

Hier sind ja mehr Fehler als richtige Buchstaben vorhanden....

Kommentar von Evolution48 ,

ja das ist PHP aber mit dem Framework laravel, das zwischen dem @if und dem @endif ist normales HTML 

das framework erstest aber <?php echo "string"; ?> mit {{string}}

also mit @machst du halt php (@ = <?php ) und {{ }} ist wie return $bla -- so in etwa  

Keine passende Antwort gefunden?

Fragen Sie die Community