Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: JS/Jquery Requesti variableksi

Sivun loppuun

epe07 [30.08.2014 16:25:44]

#

Hei!

Olen yrittämässä tällaista:

Sivu latautuu normaalisti mutta hakee myös requesteilla muut sivut, joten linkit toimisivat nopeammin.

Ongelmani on yksinkertaisesti että en osaa saada sitä variableksi.
Muuten saisin sen toimimaan.

(Mieluiten js koska scripti on jo valmiina)

Metabolix [30.08.2014 17:43:03]

#

epe07 kirjoitti:

en osaa saada sitä variableksi

Mitä?

epe07 [30.08.2014 17:53:35]

#

Metabolix kirjoitti:

epe07 kirjoitti:

en osaa saada sitä variableksi

Mitä?

No en siis ymmärrä miten muutetaan jquery varible js varibleksi

Metabolix [30.08.2014 17:54:34]

#

epe07 kirjoitti:

No en siis ymmärrä miten muutetaan jquery varible js varibleksi

... mitä?

Otahan nyt ihan alusta: mitä pitäisi saada aikaan (ja miksi), mitä nyt tapahtuu, ja mikä menee pieleen?

vesikuusi [31.08.2014 11:00:06]

#

Tarkoitatko, että sinulla on hankaluuksia tallettaa ladattu sivu (kuten HTML-koodi) muuttujaan?

epe07 [06.09.2014 21:25:54]

#

##################
# SIVU #
##################
# Tähän tulisi #
# sivu, joka #
# haetaan #
# requestilla #
# page.php?sivu=1#
##################

Helpompi?
Tarkoitan ettei sivua ladattaisi uudelleen, vain sisältö haettaisiin.

Eki++ [06.09.2014 22:00:43]

#

Ajaxiako haet? Putkassa on ajax-opas, ja Googlesta löytyy paljon oppaita ja esimerkkejä plain JS:lle ja jQuery:lle. jQueryllä pitäisi onnistua helpommin:

$("#elementti-johon-haluat-ladata").load("page.php?sivu=1");

Metabolix [06.09.2014 22:02:12]

#

On helpompi. Mikset heti kysynyt järkevästi? Sinun ei tarvitse ”saada sitä variableksi”, mitä ikinä tarkoititkaan.

<a href="page.php?sivu=1">linkki</a>
<div id="sisalto-tahan">
	<div id="sisalto">
		plaaplaa
	</div>
</div>
"use strict";
jQuery(function() {
	// Mitkä linkit muutetaan? Tässä kaikki. Voisi olla vaikka "a.jquerylinkki".
	var selector = "a[href]";
	// Laitetaan linkeille käsittelijä.
	$(selector).click(function handler(e) {
		// Otetaan vain paikalliset linkit uusille sivuille.
		if (!this.getAttribute("href").match(/^([-+.a-zA-Z0-9]+:)?\/\/|^#/)) {
			// Estetään normaali lataus.
			e.preventDefault();
			// Erotetaan linkistä osoite ja #-osa.
			var hash = this.href.match(/#.*/);
			var href = this.href.replace(/#.*/, '');
			// Ladataan #sisalto-tahan-elementtiin linkitetyn sivun #sisalto.
			$("#sisalto-tahan").load(href + " #sisalto", function() {
				// Laitetaan uusillekin linkeille käsittelijä.
				$(selector, this).click(handler);
				// Jos linkissä oli #-osa, mennään siihen.
				if (hash) {
					location.hash = hash;
				}
				// TODO: Käsittele selaimen historiaa (history.pushState).
			});
		}
	});
});

(Muokkaus: Laitoin nyt sisällön ympärille vielä ylimääräisen elementin, koska jQuery lisäsikin sisältöelementin kokonaan eikä vain sen sisältöä. Tämä ei vaikuta toimivuuteen vaan on tekninen yksityiskohta.)

epe07 [07.09.2014 12:52:58]

#

Ei toimi. :I

http://puu.sh/bp6N6/e89cd966b8.png & jquery ihan alussa, ja linkki juuri tuolleen.

groovyb [07.09.2014 13:01:00]

#

<a href="javascript:lataaSisalto();">Hae</a>
<div id="dynamic-content">
</div>

<script type="text/javascript">
   function lataaSisalto() {
      $("#dynamic-content").load("Tähän osoite, mistä kamaa haetaan");
   }
</script>

Metabolix [07.09.2014 14:13:37]

#

epe07 kirjoitti:

Ei toimi. :I

Anna sitten linkki siihen sivulle äläkä mitään kuvia kopioidusta lähdekoodista. Lisäksi voisit edes yrittää kertoa, miten koodi ”ei toimi” ja miten olet yrittänyt ratkaista ongelmaa.

Ehkä todennäköisin ongelma sinulla on, että et ole laittanut tarvittavaa diviä ladattavalle sivulle.

groovyb kirjoitti:

<a href="javascript:lataaSisalto();">Hae</a>

Tämä linkki ei ole minkään hyvän käytännön mukainen vaan näyttää karanneen 1990-luvulta. Linkkien pitäisi toimia ensisijaisesti ilman JavaScriptia, jotta sivuja voisi avata uusiin tabeihin, linkkejä voisi kopioida ja hakukoneet pystyisivät liikkumaan sivustolla (ja sivut toimisivat myös ilman JS:ää selaavilla).

epe07 [07.09.2014 17:57:03]

#

Lataako tuo siis hrefin?
Tässä div jutussa ongelmana on, että sivuni koostuu div & table tägeistä.
(kyllä, tiedän että ei pitäisi.)

EDIT:
Kaikki toimii, (1990 luvun koodilla, tosiaan onclick).

Grez [07.09.2014 18:30:15]

#

epe07 kirjoitti:

sivuni koostuu div & table tägeistä.
(kyllä, tiedän että ei pitäisi.)

No tableja pitäisi käyttää jos niitä on tarve käyttää.

Jotkut ottaa vähän liian tosissaan että taulukoita ei saa koskaan käyttää. Oon nähnyt sellaisenkin sivun jossa oli listattu firman liikkeitä tyyliin kaupunki, osoite, puhelinnumero omissa sarakkeissaan ja tämä oli toteutettu kolmella vierekkäisellä divillä. Sitten kun johonkin tuli rivinvaihtoja niin sarakkeiden tiedot ei siitä alaspäin osuneetkaan kohdalleen :[

Metabolix [07.09.2014 19:00:34]

#

epe07 kirjoitti:

Lataako tuo siis hrefin?

Mikä ”tuo”? Minun versioni kyllä – minkähän muunkaan? – mutta groovyb:n koodi ei.

epe07 kirjoitti:

Tässä div jutussa ongelmana on, että sivuni koostuu div & table tägeistä.

Mikä tässä edelleenkään estää laittamasta sitä muuttuvaa sisältöosaa divin sisään? Div voi olla taulukon sisällä tai taulukko divin sisällä. Jos ja kun kaikki sivut ovat kokonaisia, voit laittaa ulomman id:n suoraan body-elementille ja sen alle yhden divin, jonka sisällä on koko muu sivu.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta