|
| Tjeck indhold af $ er sand Fra : Ryan Jeppesen |
Dato : 19-10-05 09:23 |
|
Hej i ngen
Jeg har et lille problem som der sikkert er en simpel løsning på.
Problemet med nedestående script er at jeg har en side med 2 sprog.
Hvor grafik og tekst skal vises afhængigt af indholdet af $menuid og
$lang. Koden herunder er en menu knap som skulle skifte farve og a
href og alt. Den vælger dog hele tiden else vejen, selvom jeg prøver
med de andre var true.
Er dette ikke den korrekte både at gøre det på??
<?php
if ( lang=="eng" ){
echo "<a href='profil.php?menuid=profil&lang=eng'><img
src='gfx/roed-knap.jpg' alt='PROFILE' border='0' width='40'
height='15'></a>";
}
elseif ( menuid=="profil" && lang=="eng" ) {
echo "<a href='profil.php?menuid=profil&lang=eng'><img
src='gfx/blue-knap.jpg' alt='PROFILE' border='0' width='40'
height='15'></a>";
}
elseif ( menuid=="profil" && lang=="dk" ) {
echo "<a href='profil.php?menuid=profil&lang=dk'><img
src='gfx/blue-knap.jpg' alt='PROFIL' border='0' width='40'
height='15'></a>";
}
else {
echo "<a href='profil.php?menuid=profil&lang=dk'><img
src='gfx/roed-knap.jpg' alt='PROFIL' border='0' width='40'
height='15'></a>";
}
?>
På forhånd tak
Ryan
| |
myname (19-10-2005)
| Kommentar Fra : myname |
Dato : 19-10-05 10:55 |
|
Ryan Jeppesen wrote:
> Er dette ikke den korrekte både at gøre det på??
>
> if ( lang=="eng" ){
> echo "<a href='profil.php?menuid=profil&lang=eng'><img
lang skal du fange i $_GET arrayet,da variablen er angivet i urlen. Hvis
du laver en funktion, der returnerer en given variabel fra arraey, og
samtidig kontrollerer at indexet findes, er en god løsning:
function Get($key){
return isset($_GET[$key]) ? $_GET[$key] : "";
}
if(Get("lang") == "eng"){
etc..
| |
Ryan Jeppesen (19-10-2005)
| Kommentar Fra : Ryan Jeppesen |
Dato : 19-10-05 13:58 |
|
On Wed, 19 Oct 2005 11:55:13 +0200, myname <none@invalid> wrote:
>Ryan Jeppesen wrote:
>> Er dette ikke den korrekte både at gøre det på??
>>
>> if ( lang=="eng" ){
>> echo "<a href='profil.php?menuid=profil&lang=eng'><img
>
>lang skal du fange i $_GET arrayet,da variablen er angivet i urlen. Hvis
>du laver en funktion, der returnerer en given variabel fra arraey, og
>samtidig kontrollerer at indexet findes, er en god løsning:
>
>function Get($key){
> return isset($_GET[$key]) ? $_GET[$key] : "";
>}
>
>if(Get("lang") == "eng"){
>
>etc..
Okay, syntes bare det virker lidt voldsomt, ihvertigfald for mig :)
Hvis jeg feks kun har en var i urlen så kan den godt fatte det og
printe det jeg vil på skærmen. Troede det var fordi jeg "kaldte" 2
var samtidig forkert, dvs ( menuid=="profil" && lang=="eng" ). Men det
er korrekt?
Els mange tak for hjælpen :)
Ryan
| |
Bertel Lund Hansen (19-10-2005)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 19-10-05 14:20 |
|
Ryan Jeppesen skrev:
> Er dette ikke den korrekte både at gøre det på??
Der er logiske fejl i koden:
if ( lang=="eng" ){
blablabla
elseif ( menuid=="profil" && lang=="eng" ) {
blablabla
elseif ( menuid=="profil" && lang=="dk" ) {
blablabla
else
blablabla
;
Punkt 2 kan aldrig blive udført fordi alle engelsksprogede
indgange falder under første punkt. Jeg forstår heller ikke
hvorfor menuid-tjekket ikke skal udføres hver gang (med det kan
godt ske at det er rigtigt).
Her er et forslag til struktur:
if ( lang=="eng" ) {
if ( menuid=="profil") {
blablabla;
}
else {
blablabla;
}
}
elseif (lang=="dk" ) {
if ( menuid=="profil") {
blablabla;
}
else {
blablabla;
}
}
else {
blablabla;
}
;
--
Bertel
http://bertel.lundhansen.dk/ http://fiduso.dk/
| |
Ryan Jeppesen (27-10-2005)
| Kommentar Fra : Ryan Jeppesen |
Dato : 27-10-05 02:44 |
|
Hej
Så fik jeg endelig prøvet med din ide og det virker bare perf :)
Super!!
Mange tak for hjælpen
On Wed, 19 Oct 2005 15:19:40 +0200, Bertel Lund Hansen
<nospamfilius@lundhansen.dk> wrote:
>Ryan Jeppesen skrev:
>
>> Er dette ikke den korrekte både at gøre det på??
>
>Der er logiske fejl i koden:
>
>if ( lang=="eng" ){
> blablabla
>elseif ( menuid=="profil" && lang=="eng" ) {
> blablabla
>elseif ( menuid=="profil" && lang=="dk" ) {
> blablabla
>else
> blablabla
>;
>
>Punkt 2 kan aldrig blive udført fordi alle engelsksprogede
>indgange falder under første punkt. Jeg forstår heller ikke
>hvorfor menuid-tjekket ikke skal udføres hver gang (med det kan
>godt ske at det er rigtigt).
>
>Her er et forslag til struktur:
>
>if ( lang=="eng" ) {
> if ( menuid=="profil") {
> blablabla;
> }
> else {
> blablabla;
> }
>}
>elseif (lang=="dk" ) {
> if ( menuid=="profil") {
> blablabla;
> }
> else {
> blablabla;
> }
>}
>else {
> blablabla;
>}
>;
| |
|
|