WN

WN (https://www.wn.se/forum/index.php)
-   Klientsidans teknologier, design och grafik (https://www.wn.se/forum/forumdisplay.php?f=12)
-   -   koordinatsystem med PHP (https://www.wn.se/forum/showthread.php?t=8948)

ashur 2005-07-18 13:27

Hej!

Just nu använder jag mig av mallar med olika namn som jag hämtar information till (php include).
Nu undrar jag ifall det inte går att använda endast en mall där jag hämtar information
(dvs. istället för att skriva php include på varenda sida) så kan jag trycka på en länk och då kommer sidan upp på en viss plats i min mall? (som iframe typ men med php istället.)

hoppas ni förstod.

tack på förhand.

stakes 2005-07-18 15:37

hmmm. förstod inte riktigt.. men något sånt här kanske:


Kod:


<div style="overflow: auto;">
<? if (isset($sida) == "test") { include 'test.php'; } ?>
</div>

<a href="index.php?sida=test"> inkludera test </a>

något sådant?

ashur 2005-07-18 18:23

ja ungefär som du beskrev.
Om jag förstod koden rätt så trycker jag på länken så kommer sidan test.php där div taggen är?

Fungerar detta med flera länkar?

För nu så har första sidan ungefär 5-6 länkar. Och just nu gör jag 6 mallar av samma layout, men tar bort mitten och skriver php include:

Så här tex:

länkarna kan vara: guide.php, program.php och om.php. (alla är kopierad från index.php). Men döper dessa till olika namn.
I guide.php har jag en funktionen php include guide.inc, i program.php så har jag php funktionen php include program.ini osv...
På det här sättet blir det många sidor i längden. (http://www.tizag.com/phpT/include.php)

Det som du beskrev är på rätt riktning. Jag vill endast ändra det som finns i mitten på sidan efter att jag tryckt på en länk.

tack.

stakes 2005-07-18 22:19

haha du beskriver helt galet men jag gör ett till försök

Kod:



<!------ HÄR HAR DU NAVIGATIONEN TILL HEMSIDAN ----->
<div>
<a href="index.php?sida=lank1"> länk 1</a>
<a href="index.php?sida=lank2"> länk 2</a>
<a href="index.php?sida=lank3"> länk 3</a>
</div>

<!--- HÄR LADDAS SIDORNA ----->
<div>
<?
if (isset($sida) == "lank1") { include 'sida1.php'; }
if (isset($sida) == "lank2") { include 'sida2.php'; } '
if (isset($sida) == "lank3") { include 'sida3.php'; }
?>

</div>

genom att klicka på länken som har HREF=index.php?sida=lank1 så skickar du med variablen SIDA med värdet LANK1 vilket
får scriptet att ladda sidan.. SIDA1.PHP....

fel igen?

ashur 2005-07-18 23:33

Citat:

haha du beskriver helt galet men jag gör ett till försök
hehe. ;) Tack för hjälpen, det var så jag menade. :D

Men nu till två problem. Den ena var ett litet problem som att navigationen kom inte upp på sidan? men det fixade jag genom att lägga in länkarna i mina knappar istället.

Den andra är att varför får jag alla tre sidor på en sida, när jag endast klickar på en länk (jag klickade på min kontakt.php länk)? sida2.php och sida3.php kom också upp (innehåller endast namnet sida2.php i <h1> format och sida3.php innehåller endast sida3.php i <h1> format).

http://www.videohelp.se/formmail/php.jpg


P.S. Ifall jag trycker på nästa länk, kommer den föregående include sidan att försvinna och då tar den nya sidan platsen? Nu har jag en text på index.php sidan, och den finns fortfarande kvar när den nya sidan kommer upp.
Gå till (http://videohelp.se/formmail/hemsida.php) "testkatalog", klicka på guider-knappen då ska kontakt.php öppnas.


Tack en än gång för din hjälp.


Jag håller med dig, jag förklarar lite dåligt, får be om ursäkt för det.

festiz 2005-07-18 23:53

Kod:

       
if($_GET['sida']) //Kollar om variabeln $sida i adressfältet är satt.
{
        $sida=$_GET['sida']; //Om så är fallet - kör med den!
}else{
        $sida="main"; //namnet på din startsida utan ".php"
}
$file="pages/$sida.php"; // Hämtar
if(file_exists($file)) //Kontrollerar om filen existerar.
{
        if(!include($file)) //Om filen existerar går vi hit och försöker inkludera den.
        {
 echo "Sidan du vill gå till kan inte inkluderas"; //Om den inte gick att inkludera men finns så kastas detta error (oftast rättighetsproblem)
        }
}else{
        echo "Sidan du vill gå till kan inte hittas"; //Om filen som du vill inkludera inte finns kastas detta error. (ingen fysisk fil)
}

Sätt ovanstående kod där du vill inkludera dina sidor, det vill säga direkt i mallen.

Om du vill inkludera kontakt.php ska din länk se ut såhär:
Kod:

<a href="index.php?sida=kontakt">Min kontaktsida</a>

ashur 2005-07-19 00:06

Nu får jag upp alla tre sidor på direkten när jag besöker sidan: http://videohelp.se/formmail/hemsida.php

Koden som jag använder mig av följer här:

Kod:

<!--- HÄR LADDAS SIDORNA ----->
<div>
<?

if($_GET['sida']) //Kollar om variabeln $sida i adressfältet är satt.
{
$sida=$_GET['sida']; //Om så är fallet - kör med den!
}else{
$sida="hemsida"; //namnet på din startsida utan ".php"
}
$file="pages/$sida.php"; // Hämtar
if(file_exists($file)) //Kontrollerar om filen existerar.
{
if(!include($file)) //Om filen existerar går vi hit och försöker inkludera den.
{
 echo "Sidan du vill gå till kan inte inkluderas"; //Om den inte gick att inkludera men finns så kastas detta error (oftast rättighetsproblem)
}
}else{
echo "Sidan du vill gå till kan inte hittas"; //Om filen som du vill inkludera inte finns kastas detta error. (ingen fysisk fil)
}
if (isset($sida) == "lank1") { include 'sida2.php'; }
if (isset($sida) == "lank2") { include 'kontakt.php'; }
if (isset($sida) == "lank3") { include 'sida3.php'; }
?>
</div>

Här är knapplänkarna:
Kod:

<li><a href="hemsida.php?sida=kontakt">Min kontaktsida</a></li>

festiz 2005-07-19 01:19

if (isset($sida) == "lank1") { include 'sida2.php'; }
if (isset($sida) == "lank2") { include 'kontakt.php'; }
if (isset($sida) == "lank3") { include 'sida3.php'; }

Den koden är fel - HELT FEL.
Logiken blir true varje gång, isset($sida) returnerar true, därefter blir jämförelsen true eftersom du jämför "TRUE" med en sträng som har det naturliga värdet "TRUE" (den är inte 0 tecken lång), dessutom måste du lägga till en rad för varje fil du vill inkludera. Därför du ska använda min kod, OCH BARA MIN KOD, då spelar det ingen roll hur många sidor du har, bara skapa länkarna rätt så fungerar det.

koala 2005-07-19 01:30

Får jag fråga vad koordinater har med frågeställningen att göra? :)

ashur 2005-07-19 01:31

hehe, mycket bra fråga. Tänkte koordinera min sida på sidan. :)

festiz
aha, ok. Nu förstår jag varför alla 3 sidor kom samtidigt. :)

Nu har jag endast din kod:
Kod:

<?
if($_GET['sida']) //Kollar om variabeln $sida i adressfältet är satt.
{
$sida=$_GET['sida']; //Om så är fallet - kör med den!
}else{
$sida="hemsida"; //namnet på din startsida utan ".php"
}
$file="pages/$sida.php"; // Hämtar
if(file_exists($file)) //Kontrollerar om filen existerar.
{
if(!include($file)) //Om filen existerar går vi hit och försöker inkludera den.
{
 echo "Sidan du vill gå till kan inte inkluderas"; //Om den inte gick att inkludera men finns så kastas detta error (oftast rättighetsproblem)
}
}else{
echo "Sidan du vill gå till kan inte hittas"; //Om filen som du vill inkludera inte finns kastas detta error. (ingen fysisk fil)
}

?>

Men det händer inget. Som du kan se så har jag ändrat namnet, i koden, på startsidan till hemsida (den heter just nu det, men kommer sedan att bli index)

koala 2005-07-19 07:17

Du borde nästan kolla in #php.se på quakenet istället. Finns mer lämplig hjälp att få där. Följande kod kan du nog använda i alla fall:
Kod:

<?php $z = array(1=>'sida2.php','kontakt.php','sida3.php');
if (isset($_GET['sida'])) include($z[(int)substr( $_GET['sida'],4)]); ?>


festiz 2005-07-19 12:06

Citat:


festiz
aha, ok. Nu förstår jag varför alla 3 sidor kom samtidigt. smile.gif

BRA!!
Citat:


Nu har jag endast din kod:
Kod:

<?
...
$sida="hemsida"; //namnet på din startsida utan ".php"
...
?>

Men det händer inget. Som du kan se så har jag ändrat namnet, i koden, på startsidan till hemsida (den heter just nu det, men kommer sedan att bli index)

Nu har du fel, hemsida.php ska ju heta index.php, mycket riktigt, men! Det är inte den sidan du ska inkludera! utan du får klippa ut texten du vill ha på startsidan och infoga i en separat fil som kanske ska heta main.php. Hoppas du förstår vad jag menar. Det viktiga här är att index bara innehåller typ meny, sidebar, logga och all sån huvudsaklig struktur, men att innehållet alltid infogas från en separat fil. Självklart kan du även modifiera ifsatsen till att visa din indextext istället för att inkludera standardsidans php-fil. Detta är dock enligt mig mycket jobbigare att underhålla.

ashur 2005-07-19 14:07

:),
Nu har jag gjort som du sagt, klippt ut texten och placerat den i main.php. Ändrat i koden från hemsida till main.
Kod:

}else{
$sida="main"; //namnet på din startsida utan ".php"
}

Sedan har jag ändrat mitt namn, behövdes inte, men jag ville göra det nu till index.php. http://videohelp.se/formmail/index.php

Men nu får jag upp en text där det står: "Sidan du vill gå till kan inte hittas", när jag går till sidan.

Sedan ifall jag tycker på "min kontaktsida"-knapp med koden
Kod:

<a href="index.php?sida=kontakt">Min kontaktsida</a>
så händer inget.


p.s. main.php innehåller detta:
Kod:


  <h1>V&auml;lkommen till Videohelp.se</h1>
  <h2>Guider, program, test och nyheter</h2>
  <p>V&auml;lkommen till den svenska sidan f&ouml;r hj&auml;lp med filmer och d&auml;romkring. H&auml;r kommer vi i f&ouml;rsta hand koncentrera oss endast p&aring; svenska guider med en viss reservation f&ouml;r engelska. </p>
  <p>Om du &auml;r en nyb&ouml;rjare med filmkonvertering eller vet du inte ens vad jag pratar om <a href="http://videohelp.se/phpBB2/viewtopic.php?t=12" target="_self">g&aring; hit</a> s&aring; kan du f&aring; en liten introduktion till olika filmformat.<br />
    <br />
       

<br />
<div class="note">
        <h4>Tips!</h4>
       
  <p>Se mer i <a href="http://www.videohelp.se/guider.php">guider</a></p>
        <p>Se mer i <a href="http://www.videohelp.se/program.php">program</a></p>
</div>


festiz 2005-07-19 21:02

sorry, såg två fel i min kod...

$file="pages/$sida.php"; ska kanske modifieras, just nu inkluderade den sidor som ligger i mappen pages, och om du inte har den mappen blir det svårt :) så ta bara bort pages/

sen högst upp har vi:
if($_GET['sida']) --- Ska ändras till --- if(isset($_GET['sida']))

kopierade bara scriptet direkt från en sida jag använder..:)

ashur 2005-07-19 22:18

Tack så mycket för hjälpen festiz. Sidan fungerar nu. :D


P.S. Nu när jag har en sida som mall, vet du hur mina knappar fungerar nu, dvs. jag använder css där den sida du är på ändras färgen på knappen. Som Hem-knappen.

stakes 2005-07-19 22:33

Citat:

Originally posted by festiz@Jul 19 2005, 01:19
if (isset($sida) == "lank1") { include 'sida2.php'; }
if (isset($sida) == "lank2") { include 'kontakt.php'; }
if (isset($sida) == "lank3") { include 'sida3.php'; }

Den koden är fel - HELT FEL.
Logiken blir true varje gång, isset($sida) returnerar true, därefter blir jämförelsen true eftersom du jämför "TRUE" med en sträng som har det naturliga värdet "TRUE" (den är inte 0 tecken lång), dessutom måste du lägga till en rad för varje fil du vill inkludera. Därför du ska använda min kod, OCH BARA MIN KOD, då spelar det ingen roll hur många sidor du har, bara skapa länkarna rätt så fungerar det.

jag är ganska nybörjare på PHP så sorry att koden var fel.. men jag förstår inte riktigt för den fungerar ju finfint på mina sidor.. koden som följer:

Kod:

<?
if (isset($_GET['x']) == ""){ include 'index.php'; }
if (isset($_GET['x']) == "1"){ include '1.php'; }
if (isset($_GET['x']) == "2"){ include '2.php'; }
?>

<a href="index.php?x=1"> example link </a>

finns det någon anledning att inte använda ovanstående kod om den fungerar?

koala 2005-07-19 23:40

Citat:

Ursprungligen postat av stakes
Citat:

Ursprungligen postat av festiz
if (isset(sida) == lank1) { include sida2.php; }
if (isset(sida) == lank2) { include kontakt.php; }
if (isset(sida) == lank3) { include sida3.php; }
Den koden är fel - HELT FEL.
Logiken blir true varje gång, isset(sida) returnerar true, därefter blir jämförelsen true eftersom du jämför TRUE med en sträng som har det naturliga värdet TRUE (den är inte 0 tecken lång), dessutom måste du lägga till en rad för varje fil du vill inkludera. Därför du ska använda min kod, OCH BARA MIN KOD, då spelar det ingen roll hur många sidor du har, bara skapa länkarna rätt så fungerar det.

jag är ganska nybörjare på PHP så sorry att koden var fel.. men jag förstår inte riktigt för den fungerar ju finfint på mina sidor.. koden som följer:
Kod:

?
if isset_GETx == { include index.php; }
if isset_GETx == 1{ include 1.php; }
if isset_GETx == 2{ include 2.php; }
?
a href=index.php?x=1 example link /a

finns det någon anledning att inte använda ovanstående kod om den fungerar?

Ovanstående kod fungerar inte heller. Du kan inte nå 2.php alls nämligen, eftersom värdet av "isset($_GET['x'])" är TRUE (1) om x=1, och FALSE(0) om x inte är något alls. Om x = 2 är värdet av "isset($_GET['x'])" TRUE(1) eftersom variabeln x har tilldelats ett värde.

eg0master 2005-07-20 08:55

Stakes, koden funkar inte eftersom isset returnerar bara true eller false (precis som feztis påpekat) och koala har också fel. klart include2.php också inkluderas eftersom det är en serie IF och inte IF..ELSE IF
Du vill göra så här:
Kod:

<?
if (!isset($_GET['x']) || $_GET['x'] == ""){ include 'index.php'; }
else if ($_GET['x'] == "1"){ include '1.php'; }
else if ($_GET['x'] == "2"){ include '2.php'; }
else { include "error.php"; }
?>

<a href="index.php?x=1"> example link </a>


stakes 2005-07-20 14:53

tack fungerar perfekt nu :)

nomicon 2005-07-20 18:50

Felplacerad tråd? :) Handlar mest om php, och det är ju knappast klientsidans teknologier :)

-Martin

festiz 2005-07-20 19:33

Citat:

Originally posted by nomicon@Jul 20 2005, 18:50
Felplacerad tråd? :) Handlar mest om php, och det är ju knappast klientsidans teknologier :)

-Martin

joo det är det, moderator/admin får gärna flytta till "serversidan"

nomicon 2005-07-20 19:41

Citat:

Originally posted by stakes@Jul 20 2005, 14:53
tack fungerar perfekt nu

Får man fråga vilken sida det gäller, vill gärna se :)

-Martin

stakes 2005-07-20 19:51

http://www.rosentwig.com/test/

knappt något innehåll just nu... mest grund designen.. tar gärna emot feedback :)

koala 2005-07-20 19:59

Citat:

Originally posted by eg0master@Jul 20 2005, 08:55
Stakes, koden funkar inte eftersom isset returnerar bara true eller false (precis som feztis påpekat) och koala har också fel. klart include2.php också inkluderas eftersom det är en serie IF och inte IF..ELSE IF
Du vill göra så här:
Kod:

<?
if (!isset($_GET['x']) || $_GET['x'] == ""){ include 'index.php'; }
else if ($_GET['x'] == "1"){ include '1.php'; }
else if ($_GET['x'] == "2"){ include '2.php'; }
else { include "error.php"; }
?>

<a href="index.php?x=1"> example link </a>


Ja visst ja, "2" är ju samma booleska värde som "1" så klart... (TRUE). I PHP är ju allt TRUE om det inte är FALSE/NULL/0/""


Alla tider är GMT +2. Klockan är nu 05:27.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson