Avatar billede matz Nybegynder
07. januar 2007 - 00:49 Der er 22 kommentarer og
1 løsning

switch index.php?page=home

Jeg er ved at lave en switch case hvor den henter siderne på den samme side. hvordan får jeg det her ind i mit link så det hænger sammen:

index.php?page=home

Min kode:

    <?php
$result = mysql_query("SELECT * FROM sider ORDER BY id ASC");

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
  echo'<a href="vis3.php?id='. $row['id'] .'">'. $row['sidenavn'] .'</a><br>'; 
}

mysql_free_result($result);
?>
Avatar billede mnc Nybegynder
07. januar 2007 - 01:00 #1
Sq mene at du er ude i noget

switch ($_POST['page']
{
  case "home":
    //kode for at loade home
    break;
  case "forum":
    //kode for at loade forum
    break;
  default:
    //kode for hvis page ikke er sat til nogle af de overstående
    // (eller ikke er sat)
    break;
}

Dog er jeg ikke sikker på syntaxen, men vil tro at det er således.
Avatar billede matz Nybegynder
07. januar 2007 - 01:02 #2
Den kode har jeg allerede inde. Det jeg vil er at få min "echo'<a href="vis3.php?id='. $row['id'] .'">'. $row['sidenavn'] .'</a><br>';" frem i min case.

min kode ser sådan her ud:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<table width="680" height="495" border="1">
  <tr>
    <td width="92" height="270" valign="top">
    <?php
$result = mysql_query("SELECT * FROM sider ORDER BY id ASC");

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
  echo'<a href="vis3.php?id='. $row['id'] .'">'. $row['sidenavn'] .'</a><br>'; 
}

mysql_free_result($result);
?>
    </td>
   
    <td width="335" valign="top">
    <?php
        switch($_GET['page'])
        {
            case 'vis3':
                include('vis3.php');
                break;
       
        case 'home':
            default:
                include('vis2.php');
        }
    ?>
       
    </td>
  </tr>
</table>
</body>
</html>
Avatar billede mnc Nybegynder
07. januar 2007 - 01:02 #3
Argh, hvor du får det ind i dit link :) Min fejl.
Det gør du i din form.

<form action="index.php?page=home" method="post">
  knap eller hvad du vil ha
</form>
Avatar billede matz Nybegynder
07. januar 2007 - 01:05 #4
Hmm kan du vise mig hvor den form skal ind henne? Er helt blank lige nu :)

Du kan se her: www.playboi.dk/test/
Avatar billede mnc Nybegynder
07. januar 2007 - 01:07 #5
Jeg kan se at det allerede virker, ved manuelt at skrive linket.

Jeg sku mene at du bare laver et helt almindeligt link, og så kører det.
Avatar billede matz Nybegynder
07. januar 2007 - 01:10 #6
Kan du vise det i min kode? For jeg kan ikke rigtig se det på en anderleds måde end den jeg har skrevet ovenfor. Jeg bruger den case så "menuen" ude i venstre side bliver ved med at være der selvom man henter indholdet fra en side.
Avatar billede mnc Nybegynder
07. januar 2007 - 01:15 #7
Jeg tror ikke at jeg er helt sikker på hvad det er du vil.

Jeg er måske på vej ud på et sidespor, men.. Jeg tror at jeg har noget lignende selv. Jeg har leget lidt med php på www.phun.dk for noget tid siden, og den forside du ser er resultatet af at jeg includer 2 filer i min index.php.

Er det noget i den stil du er ude efter?
Avatar billede matz Nybegynder
07. januar 2007 - 01:17 #8
Ja det er sådan noget jeg er ude efter...min hentes så bare fra en case.
Avatar billede mnc Nybegynder
07. januar 2007 - 01:22 #9
Så du har ALT i én fil, hvis jeg forstår dig ret...

Jeg har lavet mit blot ved at dele koden op i 3 filer. Den "første" og "sidste" af de 3 filer indeholder den del af koden som altid er den samme. Eks. menuen i den første fil, og slutningen af mit store table, i den sidste.
Så includer jeg blot disse filer i toppen og bunden af min index.php, og så har jeg indholdet (din case) af siden i min index.

Hjalp det dig?
Avatar billede matz Nybegynder
07. januar 2007 - 01:29 #10
Ja jeg har alt i 1 fil... også henter jeg de enkelte filer ud via case.

prøv at se nu på siden, den kalder intet frem;

http://www.playboi.dk/test/?page=vis3.php?id=1
Avatar billede mnc Nybegynder
07. januar 2007 - 01:37 #11
Problemet her, tror jeg, er dit link. Din switch-case leder efter "vis3", men i dit link sætter du variablen 'page' til "vis3.php", og den viser derfor "vis2.php"

Desuden, nu jeg kigger efter, så ser din switch-case heller ikke rigtig ud. Kig på min første kommentar. Din "home": indeholder intet, og har ingen break;, men hopper bare videre ned til default:.
Avatar billede matz Nybegynder
07. januar 2007 - 01:42 #12
Nu har jeg ændret min switch-case så den skulle være rigtig. Hvordan fikser jeg det med linket?

switch-case:

<?php
        switch($_GET['page'])
        {
            case 'vis3':
                include('vis3.php?id='. $row['id'] .'">'. $row['sidenavn'] .'</a><br>');
                break;
       
        case 'home':
            default:
                include('forside.html');
                break;
        }
    ?>
Avatar billede mnc Nybegynder
07. januar 2007 - 01:47 #13
Det jeg mente med linket.
http://www.playboi.dk/test/?page=vis3.php?id=1

Her sætter du "page" til "vis3.php", men din case leder efter "vis3"
Lav linket om til
http://www.playboi.dk/test/?page=vis3?id=1

Dog har du stadig fejl i din switch-case.
Avatar billede mnc Nybegynder
07. januar 2007 - 01:48 #14
Fik ramt forkert der, men sætter lige din switch-case op med rigtige indryk, så sku fejlen være til at få øje på. :)

switch($_GET['page'])
{
    case 'vis3':
        include('vis3.php?id='. $row['id'] .'">'. $row['sidenavn'] .'</a><br>');
        break;
    case 'home':
    default:
        include('forside.html');
        break;
}
Avatar billede matz Nybegynder
07. januar 2007 - 01:55 #15
Den vil stadig ikke...tror stadig jeg gør noget forkert :) se hele koden her nu:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<table width="680" height="495" border="1">
  <tr>
    <td width="92" height="270" valign="top">
    <?php
$result = mysql_query("SELECT * FROM sider ORDER BY id ASC");

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
  echo'<a href="?page=vis3?id='. $row['id'] .'">'. $row['sidenavn'] .'</a><br><br>'; 
}

mysql_free_result($result);
?>
    </td>
   
    <td width="335" valign="top">
    <?php
        switch($_GET['page'])
{
    case 'vis3':
        include('vis3.php?id='. $row['id'] .'">'. $row['sidenavn'] .'</a><br>');
        break;
    case 'home':
    default:
        include('forside.html');
        break;
}
    ?>
       
    </td>
  </tr>
</table>
</body>
</html>
Avatar billede mnc Nybegynder
07. januar 2007 - 02:06 #16
switch($_GET['page'])
{
    case 'vis3':
        include('vis3.php');
        break;
    case 'home':
        // Du mangler noget kode her! :)
        break;
    default:
        include('forside.html');
        break;
}

En kammerat prikkede lige til mig over MSN (han så at jeg var med her), og vi kom frem til at vi ikke helt kan forstå hvad du skal bruge id=1 til.
Hvad med bare at skrive linket således, http://www.playboi.dk/test/?page=vis1 ?
Hvis du gerne vil have id variablen med, så skal du bruge page=vis3&id=3 <- læg mærke til & tegnet, istedet for ?. ?-tegnet virker kun den første gang, derefter skal du sige 'og'.
Avatar billede mnc Nybegynder
07. januar 2007 - 02:11 #17
Never mind med din switch-case. Det var mig der var uvidende, får jeg at vide over MSN. :)
Avatar billede matz Nybegynder
07. januar 2007 - 02:11 #18
Jeg skal bruge id=1 til at kalde selve siden som bliver trukket ud af MySql.

hmm den melder stadig fejl ved mig, tjek her: http://www.playboi.dk/test/?page=vis3&id=1

Har du mulighed for at rette på min kode så det virker ?
Avatar billede mnc Nybegynder
07. januar 2007 - 02:16 #19
Hvordan ser din switch ud nu, og hvad er dine filnavne?

Og jeg retter ikke folks kode, men hjælper gerne hvor jeg kan.
Avatar billede matz Nybegynder
07. januar 2007 - 02:17 #20
Hele koden som den er nu:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<table width="680" height="495" border="1">
  <tr>
    <td width="92" height="270" valign="top">
    <?php
$result = mysql_query("SELECT * FROM sider ORDER BY id ASC");

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
  echo'<a href="?page=vis3&id='. $row['id'] .'">'. $row['sidenavn'] .'</a><br><br>'; 
}

mysql_free_result($result);
?>
    </td>
   
    <td width="335" valign="top">
    <?php
        switch($_GET['page'])
{
    case 'vis3':
        include('vis3.php?id='. $row['id'] .'">'. $row['sidenavn'] .'</a><br>');
        break;
       
    case 'home':
    default:
        include('forside.html');
        break;
}
    ?>
       
    </td>
  </tr>
</table>
</body>
</html>
Avatar billede mnc Nybegynder
07. januar 2007 - 02:18 #21
case 'vis3':
        include('vis3.php?id='. $row['id'] .'">'. $row['sidenavn'] .'</a><br>');
        break;

Husk på at include åbner en fil, og læser indholdet af den.

case 'vis3':
        include('vis3.php');
        break;
Avatar billede matz Nybegynder
07. januar 2007 - 02:21 #22
Nu virker det! Tak for lektionen hehe :)
Avatar billede mnc Nybegynder
07. januar 2007 - 02:23 #23
Hehe, det var da så lidt. Held og lykke med dit projekt. :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

Seneste spørgsmål Seneste aktivitet
I dag 10:21 Ny printer, men hvilken Af mort1 i Printere
I går 19:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging