/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
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;
>}
>;

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408927
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste