Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Tiedoston liittäminen

Sivun loppuun

AkeMake [27.05.2010 00:54:04]

#

Tarkoitus olisi saada toisen tiedoston sisältö haettua toisen sisälle haluttuun kohtaan. Eli esim. sivu1.html:n koko sisältö pitäisi saada sivu2.html tiedoston tiettyyn kohtaan body:n sisällä. Minkälaisella koodilla tällainen onnistuisi?

Oma osaamiseni kohdistuu lähinnä xhtml- ja css-kieliin enkä tiedä lähes mistään ohjelmoinnista mitään (Ainoastaan yksi Java-kurssi käytynä), joten toivoisin valmista koodinpätkää, jonka voin vain lisätä sivulle. Toivoisin vastauksen Javascriptillä tai php:llä riippuen siitä kummalla se on järkevämpi tehdä. Javascriptinhän voi asettaa selaimen asetuksista pois päältä, joten varmaan PHP:llä saisi toteutettua koodin, joka toimisi varmemmin jokaisella sivuilla kävijällä?

Voisihan tuon tietysti toteuttaa myös xhtml:llä iframella, mutta sitä en halua tässä käyttää.

Metabolix [27.05.2010 03:01:23]

#

PHP:ssä voit käyttää readfile-funktiota.

<?php readfile("toinen.html"); ?>

Muista kuitenkin, että jos liitettävä tiedosto sisältää HTML:n aloitus- ja lopetusosat (<html>-tagi, otsikkotiedot jne.), lopputulos ei ole tällä tavalla järkevä, vaan datasta pitäisi ensin erottaa liitettäväksi sopiva osa.

AkeMake [27.05.2010 15:04:14]

#

Kiitos. Kokeilenpa tuolla. :) Hoksasin kyllä, että mikäli mukana on nämä html-, head- yms. tagit niin täytyisi enemmän nakata tuota ohjelmointikoodia sivulle, jotta tulos olisi järkevä. Tässä tapauksessa liitettävässä tiedostossa ei kuitenkaan ole kuin tekstiä, joten tällä pitäisi onnistua hyvin.

AkeMake [27.05.2010 18:27:15]

#

Yritin laittaa tuota, muttei toiminut. Sitten huomasin, että eikös tiedoston, johon laitan koodin, pidä olla php-päätteinen? En voi tässä tapauksessa php-päätteisiä tiedostoja käyttää, joten PHP:n käyttäminen ei sitten varmaan onnistu? Löytyisikö Javascriptin puolelta jotain koodia, jota voisi hyödyntää?

Tuli toinenkin ongelma.. Muokkaan siis tässä erästä valmista nettikauppa-sivua. Kaikki tuote-sivut käyttävät samaa sivupohjaa, mutta jotenkin pitäisi saada tunnistettua, että millä tuotesivulla ollaan ja sen mukaan kirjoittaa haluttu teksti sivulle. Käytössäni on automaattinen ominaisuus {ProductID}, joka laittaa tuotteen yksilöllisen ID-numeron tuolle paikalle. Voisinko jotenkin tätä ID-numeroa hyödyntämällä saada eri tuotesivuille eri tekstit? Olisiko antaa edelleen valmista koodia, kun minulla on näissä ohjelmointiasioissa peukalo keskellä kämmentä?

Metabolix [27.05.2010 18:52:51]

#

Ei tuollaista pidä lähteä toteuttamaan JS:llä kuin pakon edessä. Jos nyt kuitenkin pakko on mielestäsi edessä, kannattaa käyttää vaikka jQuery-kirjastoa:

<!-- <head>-osioon: -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
   // <![CDATA[
   // Ajetaan sivun latautuessa:
   $(function(){
      // Ladataan toinen HTML-tiedosto laatikkoon.
      $('#laatikko').load('tuotetiedot-{ProductID}.html');
   });
   // ]]>
</script>
<!-- <body>-osioon: -->
<noscript>
  <em>Sivun katselu vaatii selaimelta JavaScript-tuen!</em>
</noscript>

<div id="laatikko">
  Tuotetietoja ladataan, odota hetki.
</div>

Voit tallentaa jquery.min.js-tiedoston myös omalle sivustollesi ja muuttaa src-attribuuttia vastaavasti.

AkeMake [27.05.2010 20:12:19]

#

Yritin tuolla tavalla toteuttaa tuota, mutta avatessani tuotesivua sivu avautui lyhyeksi hetkeksi, jonka jälkeen avautui tyhjä sivu ja selain jäi lataamaan jotain.. Alhaalla lukee "Tranferring data from www.google-analytics.com..."
Eli tämä sivuilla oletuksena oleva seurantascripti tuottaa ongelmaa?

Sivuilla näyttää olevan jo yksi jquery.js niminen tiedosto käytössä. Voikohan se sekoittaa tuota jquery.min.js tiedostoa?

seurantascripti sivun alaosassa on seuraavanlainen:

<!-- Google Analytics begin -->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-16373639-1");
pageTracker._initData();
pageTracker._trackPageview();
</script>
<!-- Google Analytics end -->

// Ei ole ylimääräisen jquery.js tiedoston syytä tämä ongelma. Jätin sivulle ainoastaan yhden jquery:n, mutta edelleen ongelma jatkuu. Poistin tuon seurantascriptin, jonka jälkeen sivu latautui oikein (ongelma oli siis siinä), mutta sille paikalle, johon piti latautua toisen tiedoston sisältö latautuikin tämä sivu jossa oltiin. Eli sivu, jolla oltiin latautui toisen kerran itsensä sisään. Lähdekoodista en löytänyt mitään selkeää virhettä.

Onkohan ongelma siinä, että yritän ladata tuota tiedostoa popupin sisään?
Käytän sivulla täältä ladattua popupia.

Metabolix [27.05.2010 20:18:12]

#

Eiköhän yksi jQuery-versio riitä, voinet huoletta ottaa toisen pois. (Tiedostonimen .min tarkoittaa vain tiivistettyä versiota.) Google Analyticsin yhteisvaikutuksista en tiedä.

AkeMake [27.05.2010 22:07:36]

#

Oli vähän tyhmää muokata uusia kysymyksiä edelliseen viestiini, johon oli jo vastattu, koska eihän sitä kukaan enää huomaa. Siksi kirjoitan muokatun osan uudestaan uuteen viestiin.

Poistin ylimääräisen jquery.js tiedoston ja ongelma jatkuu edelleen. Vika ei siis ollut siinä.
Poistin seurantascriptin, jonka jälkeen sivu latautui oikein (ongelma oli siis siinä), mutta paikalle, johon piti latautua toisen tiedoston sisältö, latautuikin sivu jossa oltiin. Eli sivu, jolla oltiin latautui toisen kerran itsensä sisään. Lähdekoodista en löytänyt mitään selkeää virhettä. Tuon seurantascriptin pitäisi olla sivulla, joten sille pitäisi keksiä jokin muu ratkaisu kuin sen poistaminen.

Onkohan ongelma siinä, että yritän ladata tuota tiedostoa popupin sisään?
Käytän sivulla täältä ladattua popupia.

Metabolix puhuit ettei tätä pitäisi toteuttaa JS:llä. Olisiko olemassa toista vaihtoehtoa, kun PHP ei käy?

kayttaja-2499 [27.05.2010 22:32:52]

#

Ollaanko tässä lähdetty liian hätäseen johonkin satunnaiseen suuntaa. Eiköhän ensiksi pitäisi selvittää mitä tämä valmis nettikauppasivu tarkoittaa. Onko se valmis verkkokauppa-alusta vai jokin kyhäelmä? Miten se on tehty? Voiko sen ominaisuuksia käyttää hyväksi?

Vai halutaanko tässä vain mikä tahansa kludge, joka toimii edes siihen saakka että rahat on tilillä?

AkeMake [27.05.2010 22:50:13]

#

Siis kyseessä on ihan valmis nettikauppa-alusta. Olen yrittänyt mahdollisimman pitkälle käyttää hyväksi sen ominaisuuksia, mutta tässä tilanteessa tuli stoppi. Nettikauppa on siis hankittu osoitteesta http://mycashflow.fi/
Tämä tekeillä oleva kauppa näyttää ulkonäöltään aika pitkälti samalta kuin demo-sivulla oleva http://demo.mycashflow.fi/

pistemies [28.05.2010 08:09:34]

#

AkeMake kirjoitti:

Sitten huomasin, että eikös tiedoston, johon laitan koodin, pidä olla php-päätteinen? En voi tässä tapauksessa php-päätteisiä tiedostoja käyttää, joten PHP:n käyttäminen ei sitten varmaan onnistu? Löytyisikö Javascriptin puolelta jotain koodia, jota voisi hyödyntää?

Onko palvelimella php-tukea?

Jos on, ei kai ole kauhean iso työ vaihtaa tiedosto php-päätteiseksi....ja siihen liittyvät linkit myös. Jos saat siihen luvan...

AkeMake [28.05.2010 14:40:04]

#

Kyseisen nettikaupan ulkoasua ja tuotteita muokataan omalta hallintasivulta, joka on mielestäni melko rajoittunut. En ole perillä palvelimen php-tuesta yms., sillä olen aika ulkopuolinen henkilö kaupan toiminnassa.
Kun hallintasivulla haen koneeltani tiedostoja/kuvia kauppaan, tiedostotyyppinä ei ole valittavissa .php-päätettä, joten en voi siirtää koneellani olevia PHP-tiedostoja. PHP-tukea ei siis varmaankaan ole?

Metabolix [28.05.2010 16:28:20]

#

Nyt alkaa kyllä kuulostaa, että olet tekemässä koko hommaa joko väärin tai tyhmästi. Mihin tätä koko yhdistelyjuttua tarvitaan? Etkö voi yksinkertaisesti syöttää verkkokaupan valmiilla hallintatyökaluilla tuotteiden kuvauksia?

pistemies [28.05.2010 16:54:06]

#

AkeMake kirjoitti:

PHP-tukea ei siis varmaankaan ole?

Voi tuki ollakin, mutta php-tiedostojen siirtoon ei ole oikeuksia.
Toisaalta, jos sinulla tulostettavat tekstit eivät ole kovin pitkiä, ne voi javascriptin avulla tulostaa myös javascript-taulukosta tai sitten ajaxilla tiedostosta.

AkeMake [29.05.2010 02:23:16]

#

Metabolix kirjoitti:

Etkö voi yksinkertaisesti syöttää verkkokaupan valmiilla hallintatyökaluilla tuotteiden kuvauksia?

No kyseessä ei ole tuotteen kuvaus vaan tuotteen kommentti. Kuvaus kyllä on saatu hyvin näkyviin tuotteen viereen. Tavoite onkin laittaa tuotesivulle linkki, josta aukeaa ponnahdusikkunaan yrityksen johtohenkilön kommentti tuotteesta. Tämä kommentti on erillään itse tuotteesta, joten oikea kommentti täytyy jotenkin saada liitettyä oikealle tuotteelle.
----------
Kirjoittaessani, että kommentti on erillään tuotteesta, huomasin ajatella, että täytyykö asian todella olla näin. Kävin liittämässä kommentin samaan paikkaan missä on tuotekuvauskin. Tämä kommenttihan on oletusarvoisesti piilotettu ja vasta popup-linkki aukaisee sen katseltavaksi. Oikean kommentin yhdistäminen oikeaan tuotteeseen onnistuikin siis näin yksinkertaisesti. Olin kuvitellut tarvitsevani tähän joitain hienouksia, kun olisi pitänyt alusta asti ajatella asiaa mahdollisimman yksinkertaisesti.. Noloa.

No jäi minulle tähän kuitenkin toinen ongelma. Tämä linkki, jolla kommentti aukaistaan popup-ikkunaan katseltavaksi pitäisi kuitenkin olla eri paikassa kuin tuotekuvaus. Linkki sijaitsee siis tuotteiden käyttämässä yhteisessä sivupohjassa. Miten saisin tuotteesta riippuen eri tekstin linkkitekstiksi? Onnistuuko vain yksinkertaisesti Javascriptin if-rakenteella tyyliin:

var id = {ProductID};
if(id == 1)
{
  document.write("Ensimmäinen tuote");
}
else if(id == 2)
{
  document.write("Toinen tuote");
}
else
{
  document.write("Muu tuote");
}

Vai löytyykö tähän parempaa ratkaisua?


Sivun alkuun

Vastaus

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

Tietoa sivustosta