Just nu i M3-nätverket
Gå till innehåll

Skapar en ny sida vid HttpRequest


happyfejs

Rekommendera Poster

Tja!

 

Försöker lära mig detta vackra Ajax, får det dock inte riktigt att funka, jag laddar på denna sidan http://www.happyfejs.se/63n/index.php?page=clients content från klickad länk ute i menyn via en httpRequest för att inte uppdatera hela sidan, problemet är att det läggs in en helt ny sida i container istället för att bara hämta php filen som jag länkar i li objectet. Scriptet för att hämta vald fil ligger i script.js. Nån som har nån idé om vad som kan vara fel?

Länk till kommentar
Dela på andra webbplatser

men du... om du ändå använder jQuery på sajten - varför inte använda jQuerys ajaxfunktionalitet?

 

 

$(".knapp").bind("click",function(){

$("#content").load("url.html #content");

});

 

load kan hämta delar från en sida.

Kolla in jQuerys dokumentation och kolla in "load-metoden"

Länk till kommentar
Dela på andra webbplatser

Vad är det för fördelar med att använda det istället för ajax?

 

Testade att skriva så här nu, testade även att lägga in den i en onload funktion, men hände inte mycket. Jag vill ladda in hela php filen och inte bara en del, men antar att det inte spelar nån roll? Kan man med jQuery också ändra url:en när man byter sida?

 

$("#span1_link").bind("click",function(){
       $("#content").load("pages/clients.inc.php");
});

 

Tack för svar

Länk till kommentar
Dela på andra webbplatser

Det ÄR ajax, men ett ramverk som gör det lättare att hantera än den otympliga javascript-kod man traditionellt använder.

 

Jag förstår inte varför du skall använda det vid onload. Innehållet skall redan finnas där, annars får du problem med SEO.

 

Man läser in hela dokumentet, men med #content efter urlen i anropet så lägger jQuery endast in innehållet i #content-divven.

 

Läs mer i jQuerys dokumentation om hur det fungerar.

Länk till kommentar
Dela på andra webbplatser

I see. Att jag körde det på onload var mest för att testa om det funkade bättre, men icke.

 

Hela sidan laddas ändå liksom :S, ifall man kör den i FF så ser man att kryssrutan för stoppa laddning blinkar till, samt att urlen ändras, och det har jag ju inte lagt in nått script för än?

 

nu ser mitt script ut så här, la in return false för att den inte skulle följa länken. Eller?

 

$("#span1_link").bind("click",function(){
       $("#content").load("index.php?page=clients #content");
       return false;
});

 

I dokumentationen finns ju ungefär samma kod som du gett mig här.. Har kollat lite och känns som att det borde funka så som jag gjort..

Länk till kommentar
Dela på andra webbplatser

Gör om A-taggarna till lager istället. Ett element skall bara vara en A-tagg om det har den funktionaliteten som du nu vill ta bort.

Om du ändå inte vill göra detta av någon anledning, så använd ex. href="javascript:return false;"

Länk till kommentar
Dela på andra webbplatser

Då har du två alternativ. Antingen byter du med jQuery ut a-taggarna mot div-taggar när sidan laddats och slänger på click-hanterare, eller så förändrar du (också med jQuery) href-attributen så att det får ovanstående javascript i sig istället, hellre än en riktig länkadress.

Länk till kommentar
Dela på andra webbplatser

Här är typ vad jag vill uppnå

http://jaxvineyards.com/#/story.html

 

Där ändras även URL:en, men det känns som att han skrivit en humongos kod i jämnförelse mot de tre rader jag fått här? Vad är skillnaden? Han kör sin via a href länkar också.

 

Vad gör hans kod för mer nytta än den ni gett mig? Den är nästan för lång för att jag ska hänga med riktigt :S

 

Tack för att ni hjälper mig :)

Länk till kommentar
Dela på andra webbplatser

  • 2 months later...

Den sidan du nämner gör så mycket mer än laddar in med ajax, och jag tänker inte undersöka vad alla saker gör.

 

Så här kan man göra för att få sin sajt unobtrusive (att sajten skall fungera även utan javascript) och tillvägagångssätt som sajten, som du länkat till, gör

 

1. På sajten skriver man ut urlen i fulltext

<a href="/nysida.html" id="link">ny sida</a>

2. Med javascript ligger man ett event som ändrar hrefen till en ankarlänk istället och en return false så att det inte blir ett hopp vid klickningen.

<a href="#/nysida.html" id="link">ny sida</a>

3. Man har en funktion som, lite då och då, kollar av om urlen har ändrats och gör i så fall en begäran att hämta informationen från den sida som ankarlänken nämner (nysida.html i detta fall) och lägger in den på sin rätta plats.

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...