webForumDet fria alternativet

Kan man spara värdet av den aktuella sökvägen i en variabel?

PHP

9 svar · 2 515 visningar · startad av kluringen

Medlem sedan juli 2011156 inlägg
Frågan#1

Jag vill helt enkelt kunna visa om aktuell bild med en annan meny utan att användaren aktivt ska behöva trycka på backtangenten eller göra om menyvalet.

Min lösning att växla mellan dold och är lite klumpig som det är gjort

Medlem sedan jan. 2005114 inlägg
#2

hänger inte med riktigt...utveckla din fråga lite mer så kanske vi kan hjälpa dig....har du något exempel på en sida som använder det du hade tänkt dig (vilken isf)...Hur ser din kod ut idag? Lite mer info behövs nog för att iaf jag skall förstå!

Medlem sedan juli 2011156 inlägg
#3

Jag vill kunna stänga och öppna menyn vid behov, t ex när användaren gör texten så stor att menyn täcker över det mesta av den relevanta texten.

Befintlig lösning fungerar men det kan upplevas som ologiskt för användaren att menyn stängs först efter val av önskad sida eller då man backar med webbläsarens ”backa pil” efte att ha klickat på ”Ändra till dold menystil”.

Så här gör jag i den befintliga lösningen: På varje sida har jag

<?php include("menylista.php"); ?>

”menylista. php” ser ut så här:

<?php
if ($_SESSION[stil]=="dold") {include("visameny.php");}
else {include("menyval.php");} 
?>

I "menyval.php" väljer jag menu beroende på inloggningsnivå. (Det finns fyra nivåer: styrelse, medlem, konsulter och allmänhet ).

$_SESSION[stil] är min variabel som jag kan testa på om menystilen skall vara dold eller öppen meny. Initialt är den öppen. När användaren väljer ”Ändra till dold menystil” länkar jag till en dummy sida där jag ändrar variabeln $_SESSION[stil] till ”dold” som får behålla sitt värde tills användaren klickar på ”Återställ”.

”visameny.php” länkar till dummysidan där användaren kan göra ett nytt menyval, eller återställa till öppen menystil som sker på en annan dummy. Men egentligen jag vill jag stänga/öppna menyn utan att flytta användaren till dummysidor men jag får inte till det.

Jag använder inget script till menyerna, de är gjorda med enbart CSS och HTML.

Medlem sedan juli 2011156 inlägg
#4

Varför funkar inte detta?

Jag är nära en lösning men misslyckas med att ladda om sidan. Jag har testat med hjälp av ”echo” m.m. att variablerna blir satta och att logistiken fungerar som jag vill när jag växlar mellan två menystilar.

<?php session_start();
$_SESSION[stil]="dold"; 

header('Location: $_SESSION[sida]');
exit;
?>

Ovanstående fungerar om jag i testsyfte hårdkodar värdet som jag har tilldelat variabeln $_SESSION[sida] och som jag har försäkrat mig om är satt. :l

Medlem sedan maj 20012 237 inlägg
#5

Liten notis:

kör hellre med $_SESSION['sida']; notera ' '

Det skall vara mycket snabbare.

Medlem sedan juli 2011156 inlägg
#6

Löst, men kan förbättras

Så här ska det se ut:

 header('Location: ' .$_SESSION['sida']);

Det fattades en ‘ och en punkt. Inte för att jag ser någon logik i att det ska vara så. Det var ju knepigt att komma på att syntaxen är olika då man hårdkodar en sökväg (använder en literal) eller när man har en variabel. Notera ' och . framför variabeln.

Nu skulle det vara trevligt om det går att läsa in aktuell sökväg från webbläsaren så man slipper sätta variabeln själv på varje enskild sida?

Medlem sedan maj 20012 237 inlägg
#7

I PHP tolkas allt inom ' ' som vanliga strängar. Dvs 'Location: $_SESSION[sida]'

tolkas precis som det skrivs.

$foo = 'kalle';

echo '$foo'; // $foo
echo "$foo"; // kalle (PHP undersöker om strängen innehåller en variabel. Gör den det så byts variablen ut mot dess värde)

Om man vet att strängen inte innehåller en variabel så är det bättre att köra med ' ' då det är lite snabbare (PHP behöver inte undersöka innehållet efter en variabel).

Medlem sedan juli 2011156 inlägg
#8

Nu är jag nöjd.

Stäng/öppna meny fungerar nu som jag vill.
Tack för din förklaring om skillnaden mellan " och ', men det känns mycket ovant att man kan ha en variabel innuti en textsträng. I andra programmerinsspråk är det en antigen/eller.

Medlem sedan maj 20012 237 inlägg
#9

$name = 'Olle';
$age = 32;

echo 'Hej jag heter ' . $name . ' och jag är ' . $age . ' år gammal';

vs

echo "Hej jag heter $name och jag är $age år gammal";

En förenklad förklaring till varför det ibland kan vara kul at man kan baka in en variabel i en sträng.

Medlem sedan juli 2011156 inlägg
#10

Nu har jag markerat ditt inlägg jme som ledde till att jag uteslutande labbade med fnuttarna som ledde till en lösning. Plötsligt så hände det som dom säger i trissreklamen.
MVH
Kluringen

268 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)