php javascript premenne

Programovacie jazyky, rady, poradňa...
jk4p
Amateur
Amateur
Príspevky: 14
Registrovaný: 06 máj 2008, 17:03

php javascript premenne

Príspevok od používateľa jk4p »

Zdravim. Potreboval by som vediet akymi sposobmi sa daju posielat premenne (ich hodnoty) z PHP do externeho javascriptu, a ako potom k nim pristupovat. Vopred dik :)
beluský
Darca
Darca
Používateľov profilový obrázok
Príspevky: 317
Registrovaný: 21 sep 2006, 13:46

Príspevok od používateľa beluský »

badluck
Amateur
Amateur
Používateľov profilový obrázok
Príspevky: 29
Registrovaný: 18 jún 2006, 18:56

Príspevok od používateľa badluck »

nemusi byt hned ajax, da sa to viacerymi sposobmi, napr pouzitim funkcie a pri jej volani:

Kód: Vybrať všetko

<?php                                                
javascript: mojafunkcia (\''.$x.'\')
?>
jk4p
Amateur
Amateur
Príspevky: 14
Registrovaný: 06 máj 2008, 17:03

Príspevok od používateľa jk4p »

Neda sa to aj cez GET ked volam ten externz script? priklad: <script src='script.js?bla=$x'> Ak hej ako sa potom v tom externom scripte dostanem k tej premennej?
"J"
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1019
Registrovaný: 13 mar 2007, 17:10

Príspevok od používateľa "J" »

jk4p
Amateur
Amateur
Príspevky: 14
Registrovaný: 06 máj 2008, 17:03

Príspevok od používateľa jk4p »

Este by som sa chcel spytat ci nahodou niekto nemate skusenosti s externym javascriptom pisanym v php (neviem presne ako to nazvat). Odkazuje sa na to tymto:

Kód: Vybrať všetko

 <script type='text/javascript' src='script.php'> 

Ake su rozdiely v kode medzi normalnym .js a .php ? Dik
Nadeo
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2202
Registrovaný: 04 nov 2006, 19:38
Bydlisko: BA/LV
Kontaktovať používateľa:

Príspevok od používateľa Nadeo »

No toto je vlastne len javascript generovany cez php. :)
jk4p
Amateur
Amateur
Príspevky: 14
Registrovaný: 06 máj 2008, 17:03

Príspevok od používateľa jk4p »

No hej len mam script, mozem ho sem dat, a ked to premenujem na .php tak to nefunguje a neviem ake zmeny tam mam spravit.
beluský
Darca
Darca
Používateľov profilový obrázok
Príspevky: 317
Registrovaný: 21 sep 2006, 13:46

Príspevok od používateľa beluský »

Mozno myslis takeho nieco...

Kód: Vybrať všetko

<?php 
  $text = 'Tato sprava bola vygenerovana s php a po nacitani sa zobrazi.'; 
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <script type="text/javascript">
  <!--
    <?php echo 'function sprava() { alert(\''.$text.'\'); return false; }'; ?>
  //-->
  </script>
  </head>
  <body onLoad="sprava()">
    Bla Bla Bla...
  </body>
</html>
ale ak by si to chcel do nejakeho .js suboru, tak ma napada jedine ten subor neustale generovat... vlastne tak isto ako priklad co som napisal, len to budes zapisovat do suboru, das mu meno skript.js a do hlavicky uz len pridas

// edit: avsak toto plati len vtedy ak generevane udaje su rovnake pre vsetkych navstevnikov, tak ako pripomenul tuto kolega podomnou ;)

Kód: Vybrať všetko

<script type='text/javascript' src='skript.js'>
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

nič nemusí zapisovať do súboru (vlastne ani nemôže, lebo moje vygenerovanie prepíše js aj inému návštevníkovi stránky, a potom stráca na svojej prispôsobatelnosti užívateľovi podla potrieb).
jk4p
Amateur
Amateur
Príspevky: 14
Registrovaný: 06 máj 2008, 17:03

Príspevok od používateľa jk4p »

Ide mi asi o toto:
Mam tento externy script.js

Kód: Vybrať všetko

function createXMLHTTP() {
  var xmlHttp = null;
  
  try {
    // Firefox, Opera 8.0+, Safari
    xmlHttp = new XMLHttpRequest();
  } catch (e) {
    // Internet Explorer
    try {
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
  }

  return xmlHttp;
}

function getDataForDIV(url, divID) {
  var xmlHTTP = createXMLHTTP();
 
  if(!xmlHTTP) {
    alert('sorry, no ajax for you');
    return false;
  }

  xmlHTTP.onreadystatechange = function() {
    if (xmlHTTP.readyState == 4) {
      document.getElementById(divID).innerHTML = xmlHTTP.responseText;
    }
  };

  xmlHTTP.open('GET', url, true);
  xmlHTTP.send(null);
}

function init() {
      x2 = "<?$_GET['x1']?>";
      getDataForDIV('stranka.php?x='+x2, 'div1');
  setInterval("getDataForDIV('stranka.php?x='+x2, 'div1')", 3000);

}
Na stranke k nemu pristupujem takto:

Kód: Vybrať všetko

<script src='script.js?x1=blabla'></script>
V tomto pripade ale nemozem tu premennu x1 dostat cez $_GET pretoze, ak sa nemylim v externom javascripte nemozem pouzit php kod.
Nasiel som si na tejto stranke: http://www.javascriptkit.com/javatutors ... lphp.shtml Nieco take ze ked ten subor ulozim ako .php tak tam tu funkciu $_GET budem moct pouzit a na stranke budem k tomu scriptu pristupovat tymto:

Kód: Vybrať všetko

<script type='text/javascript' src='script.php?x1=blabla'></script>
No len neveim ako musim ten javascript upravit aby to islo, pretoze ked to len premenujem a pridam tam ten header tak to nefacha.
beluský
Darca
Darca
Používateľov profilový obrázok
Príspevky: 317
Registrovaný: 21 sep 2006, 13:46

Príspevok od používateľa beluský »

enchyba ti tam to

Kód: Vybrať všetko

Header("content-type: application/x-javascript");
??
jk4p
Amateur
Amateur
Príspevky: 14
Registrovaný: 06 máj 2008, 17:03

Príspevok od používateľa jk4p »

V tomto scripte to nie je pretoze to je .js a to sa dava iba do .php nie?
beluský
Darca
Darca
Používateľov profilový obrázok
Príspevky: 317
Registrovaný: 21 sep 2006, 13:46

Príspevok od používateľa beluský »

a preco to nevyskusas podla linku co si postol hore
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Fungovať by to malo, akurát to asi nie je najlepší nápad (každopádne by som tam nepoužíval <?, ale dal by som tam <?php) kvôli tomu, že taký skript sa nemôže vhodne cache-ovať.
Napísať odpoveď