Avatar billede madiedk Nybegynder
04. februar 2010 - 13:41 Der er 9 kommentarer og
1 løsning

ajax menusystem mht. søgemaskine

hej

Jeg har en hjemmeside med 6 menupunkter (AJAX baseret). Der har disse 3 filer index.php, cc.css og js.jsp. De indeholder hele strukturen og design på siden. Og så har jeg 6 php filer der indeholder tekst og billede til hver af menupunkterne.  2 spørgsmål.

1. hvis en bruger skriver www.xxx.dk/info.php så komme de inde på menupunkter der indeholder info, men da index.php ikke bliver loadede ser siden meget grim ud og ingen opsætning. Hvad er den bedst løsning på det.

2. (hænger måske sammen med 1) google kan f.eks godt finde www.xxx.dk/info og så kan folk klikke på den, og det er også fint nok, men der er som sagt ingen design og opsætning på siden så, hvad er det bedste at gøre her?
Avatar billede intenz Novice
04. februar 2010 - 14:12 #1
Det er bedst hvis du tjekker om index.php er indlæst (om man kalder info.php direkte eller ej), og hvis den ikke er, søger du for at det bliver indlæst.

Jeg ved ikke om du forventer et klarere svar. Sådan noget kan laves på en million forskellige måder, og det kommer an på hvordan du har lavet det.
Avatar billede madiedk Nybegynder
04. februar 2010 - 21:48 #2
mange tak, Kan du give et eksemple på hvordan man kunne tjekke det smart.

min info.php sige ser sådan ud:

<div id="sekdif2">
    <?php include("structure/menu.php"); ?>
    <div id="indhold">
        <div id="dif2">

            <div id="left"><img id="pic4" src="media/gitte3.jpg" alt="4" width="160" height="150" /></div>
            <div id="tekst">

            test infoside
            </div>
            <div id="right"><img id="pic4" src="media/images7.jpg" alt="4" width="160" height="150" /></div>
        </div>
    </div>
</div>


Den bliver så læst ind i min index.php side i en <div id="side"> er det nok info?
Avatar billede intenz Novice
05. februar 2010 - 12:53 #3
Det kan også gøres på mange måder, der også kommer an på hvordan din index.php er opbygget. Du kunne f.eks. gøre det på følgende måde:

I dit ajax kald sender du en variabel mere med i kaldet. F.eks. ajax_load=1 eller lign.
I info.php tjekker du om den variabel er sat, hvis den er viser du bare indholdet som det er nu (fordi det er et ajax kald) ellers redirecter du til index.php (med en variabel som vist i eksemplet nedenfor).

Eksempel:

<?php
if (isset($_REQUEST['ajax_load'])) {
...dit indhold
} else {
header("Location: index.php?do_load=info");
}
?>


I din index.php fil, kan du så ændre din <div id="side"></div> til noget i den her stil:

<div id="side">
<?php
if (isset($_GET['do_load'])) {
if ($_GET['do_load'] == "info") {
  include("info.php");
} else if ($_GET['do_load'] == "noget andet") {
  include("noget_andet.php");
}
}
?>
</div>


På den måde kan du bruge ajax hvis brugeren klikker på linket og include filer på den gammeldags måde hvis man henter filen direkte.
Som sagt kan det gøres på mange måder, det her er nok en af de mere simple.
Avatar billede intenz Novice
05. februar 2010 - 12:54 #4
Hov, der var lige en fejl.

Den nederste kode skal være:

<div id="side">
<?php
if (isset($_GET['do_load'])) {
if ($_GET['do_load'] == "info") {
  include("info.php?ajax_load=1");
} else if ($_GET['do_load'] == "noget andet") {
  include("noget_andet.php?ajax_load=1");
}
}
?>
</div>


Ellers kommer du ind i et uendelige loop.
Avatar billede madiedk Nybegynder
08. februar 2010 - 15:44 #5
jeg har godt nok accepteret svaret og synes også det giver logisk mening, men den kommer med den her fejl når jeg skriver:

http://localhost/index.php?load=info


min index fil ser sådan ud på linie 30

                if ($_GET['load'] == "info") {

                    include("/info.php?ajax_load=true");

                }

Warning: include(/info.php?ajax_load=true) [function.include]: failed to open stream: No error in D:\web\gitteajax\index.php on line 30

Warning: include() [function.include]: Failed opening '/info.php?ajax_load=true' for inclusion (include_path='.;C:\php5\pear') in D:\web\gitteajax\index.php on line 30
Avatar billede intenz Novice
08. februar 2010 - 16:07 #6
Ligger den i roden at dit website? Du bruger en komplet sti:
include("/info.php?ajax_load=true");

i stedet for en relativ:
include("info.php?ajax_load=true");
Avatar billede madiedk Nybegynder
08. februar 2010 - 16:12 #7
ja alt det har jeg dobbelt tjekket, det er korrekt sat op
Avatar billede madiedk Nybegynder
08. februar 2010 - 16:21 #8
kan det have noget at gøre med at den åbner sig selv? læse på et andet fora at en havde prøvet med fopen og at den også fejlene der.
Avatar billede intenz Novice
08. februar 2010 - 16:28 #9
Jeg forstår ikke hvad du mener med 'åbner sig selv'?

Vi er enige om, at info.php laver redirect til index.php (hvis det ikke er et ajax kald) og index.php så includerer info.php ikk?
Avatar billede madiedk Nybegynder
08. februar 2010 - 17:48 #10
Jo lige præcis.
Det jeg mener med "åbne sig selv" var bare at info åbner index som åbner info.
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