Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP-funktio JavaScript-koodissa

Sivun loppuun

runeberg [30.11.2009 15:43:28]

#

Hei.

Onko mitenkään mahdollista suorittaa php:n funktio javascript koodissa? Eli tarvisin funktion joka palauttaa tekstin tiedostosta ja koska siihen ei voi käyttää javascriptiä, täytyy käyttää php:tä. Ja javascriptiä ei tässä tapauksessa voi vaihtaa php:ksi. Koitin näin, mutta ei tunnista tuota getContent- funktiota:

 <script type="text/javascript" src="jquery.js"></script>
  <script type="text/javascript">

  // ... paljon javascript koodia...

  var contentText;

  function openPopup(item)
  {
    switch(item)
    {
      case 1:
      contentText = getContent("content1.txt");
      break;
    }
  }
  </script>
<?php

          function getContent($contentFile)
          {
            $readFile=file($contentFile)
            $text="";
            for ($i = 0; $i < count($readFile); $i++)
            {
              $text+=$readFile[$i];
            }
            return $text;
          }

?>

Tai, miten tuo on muuten toteutettavissa?

Metabolix [30.11.2009 15:54:18]

#

Ei ole, kun se PHP-funktio suoritetaan palvelimella ennen sivun lähettämistä selaimelle. Jos tiedät tiedostonimen jo siinä vaiheessa, voit kyllä tulostaa sen JS:lle. Jotta data säilyisi muuttumattomana (esim. rivinvaihdot ja lainausmerkit), käytä JSON-formaattia tai URL-enkoodausta.

<?php
$data = file_get_contents("tiedosto.txt");
?>
<script ...>
var tiedosto = <?php echo json_encode($data); ?>;
// var tiedosto = "Tiedostosta luettu teksti";
var tiedosto = unescape("<?php echo rawurlencode($data); ?>");
// var tiedosto = unescape("Tiedostosta%20luettu%20teksti");
</script>

jo123 [30.11.2009 15:55:15]

#

Ei ole mahdollista sinänsä, koska php suoritetaan palvelinpuolella. Voit kuitenkin tutustua semmoiseen hirviöön kuin ajax, jolla tämä onnistuu. Tähän löytyy putkasta hyvä opas.

Edit: Metabolix oli nopeampi...

Juhko [30.11.2009 16:10:24]

#

XMLHttpRequest-jutulla voit lukea sisällön tiedostosta, mutta sitä en tiedä, kannattaako näin tehdä.

runeberg [30.11.2009 16:10:48]

#

Ok kiitos vastauksista!

Periaatteessa tuon sitten pystyis lukemaan "valmiiksi", koska mulla noita eri sisältö vaihtoehtoja ei ole kovin montaa.
Mutta onko se kauhean raskasta ja täysin väärä tapa, jos säilön kaikki n. 10 eri sisältövaihtoehtoa muistiin? Yksi sisältö on yleensä noin 10 riviä tekstiä. Varmaan kannattaisi olla taulu $data[] ja käydä php koodissa nuo kaikki tiedostot läpi siihen?

Juhko [30.11.2009 16:12:32]

#

Voit rakentaa JavaScript-koodin PHP:n avulla.

jo123 [30.11.2009 17:14:10]

#

Juhko kirjoitti:

Voit rakentaa JavaScript-koodin PHP:n avulla.

Metabolix kyllä jo käytännössä ehdotti tätä...

runeberg [30.11.2009 18:16:03]

#

Jes, kiitos, nyt rupes mullakin meneen jakeluun


Sivun alkuun

Vastaus

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

Tietoa sivustosta