Autor Zpráva
kincakivca
Profil
Dobrýž den.
Potřeboval bych poradit jak dostanu proměnou
$id = $_GET['id']; 
z .php souboru index.php do .js souboru js.js
   var url = "vypis_chat.php?id=";
za
id=
Monkeys
Profil *
v html dokumente v hlavicke:

<script>
var id = $_GET['id'];
</script>

a v tvojom externom js subore uz len zavolas to id.

var url = "vypis_chat.php?id="+id+"";

M.
kincakivca
Profil
To jsem zkoušel a nefunguje to.
_es
Profil
kincakivca:
Nejčastější potíže s PHP (FAQ) » Jak přenést proměnnou z PHP do javascriptu
kincakivca
Profil
Tohle vím a je mi to ale úplně k ničemu, není tam jak tu proměnou dostat do jiného souboru. Z index.php do js.js
_es
Profil
[#5] kincakivca:
Na čo by si to nejako dával „do js.js“?
Pred <script src="js.js"></script> dáš
<script>var url = <?php PHP kód s výstupom toho, čomu sa má rovnať premenná url. ?>;</script>
a máš v JavaScripte dostupnú premennú url.
Kubo2
Profil
Monkeys, kincakivca:
To je hlúposť, pretože žiadny objekt window.$_GET v JavaScripte nejestvuje. Jedna možnosť by bola tú hodnotu vypísať zo superglobálneho poľa $_GET v PHP:

<script>var id = <?php echo $_GET['id'] ?></script>

Ale prečo nevyužiť priamo v JavaScripte natívny objekt window.location a jeho krásnu vlastnosť search (location.search — ktorá mimochodom slúži práve k tomu)?

var $_GET = (function(){
  var res = [];
  for(var get in location.search.substr(0).split('&'))
  {
    res[get.split('=')[0]] = get.split('=')[1];
  }
  return res;
})();
Vďaka tomu kódu môžeš rovnež v JavaScripte pristupovať k takmer všetkým parametrom v URL pomocou syntaxe ako v PHP:
// v adrese máš ?id=32
var id = $_GET['id'];
// v premennej id máš číslo o hodnote 32
alert(typeof(id) == "number" && id == 23); // true
kincakivca
Profil
A jak to teda vlastně dostanu do toho var url = "vypis_chat.php?id=";?
Monkeys
Profil *
Kubo2:
<script>var id = <?php echo $_GET['id'] ?></script>

Mas pravdu myslel som to takto ako si napisal.


M.
kincakivca
Profil
Monkeys:
<script>var id = <?php echo $_GET['id'] ?></script>
To je mi ale k ničemu.Nefunguje to protože <?php echo $_GET['id'] ?> nejde dát do .js souboru.
Kubo2
Profil
kincakivca:
Prečítaj si poriadne [#6] a [#7] a skús nad tým trochu porozmýšľať.
kincakivca
Profil
Ano, já vím že to [#6] tak funguje ale já jsem koukal na mjiný scripty ve kterejsh je to udělaný tak že var url= je v tom .js souboru a to $id se tam nák "narve" a to by mě právě zajímalo jak udělat.
_es
Profil
kincakivca:
ve kterejsh je to udělaný tak že var url= je v tom .js souboru a to $id se tam nák "narve"
Narvat“ to tam nejde, lebo „.js súbory“ vôbec neprechádzajú PHP interpretom, ale ich server odošle tak, ako sú, môžeš to zmysluplne „narvať“ len do „.php súboru“.
PostCC
Profil
_es:
... pokud není na *.js soubory nastaveno PHP parsování. A nebo regulérněji - volat *.PHP soubor, který vrátí hlavičky:

Header('Content-Type: application/x-javascript; name="Script.js"');
Header('Content-Disposition: inline; filename="Script.js"');

V dotyčném PHP souboru pak lze generovat požadovaný Javascript včetně doplnění všech potřebných proměnných .
_es
Profil
PostCC:
A nebo regulérněji - volat *.PHP soubor, který vrátí hlavičky:
Alebo, jednoduchšie, ušetriť jeden HTTP dotaz a volanie PHP interpreta, a použiť na uvedený účel index.php, čo mu je radené už v [#6], alebo v [#7] použiť na to vhodný JS objekt location.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: