
Jak předat v JS paramtetr do PHP
Ahoj, poradí někdo jak předat JS proměnnou 'hodnota' jako parametr do php funkce 'nejaka_funkce(hodnota)'? Díky.
var hodnota='string';
var result = "<?php nejaka_funkce(hodnota); ?>";
alert(result);
Chyba:
Notice: Use of undefined constant hodnota - assumed 'hodnota' ...
https://stackoverflow.com/questions/9789283/how-to-get-javascript-variable-value-in-php
Tak jsem zkusila tohle
soubor test.php
Nevím jak v tom php získat ten parametr, je to $_POST ale s jakým klíčem, $_POST['data'] ?
Jak vypsat v tom alertu to echo z php namísto 'SUCCESS'.
PS: Kde se plní proměnná result? Odkud se vzala?
Díky.
Nejlepší bude, když napíšeš co chceš (ne ve smyslu kódu, ale ve smyslu co chceš vytvořit a jak to má fungovat jako z uživatelského hlediska). Každou chvíli chceš něco jiného. Jestli chceš poslat data na php skript a získat data z odpovědi toho php skriptu, tak to je něco jíného než jsi chtěla původně. Jestli chceš opravdu to co chceš teď tak to se dělá ajaxem a na netu máš septiliontin příkladů. Takže netuším oč ti fakt jde.
Na můj prvotní dotaz neexistuje řešení, tudíž musím zvolit jiný způsob, proto se ptám na jiný dotaz. Pokud nevíš nebo nechceš poradit, nikdo tě k tomu přece nenutí.
Na tvůj první dotaz jsem ti dal odkaz na řešení.
Na druhý jsem ti psal, že to jde ajaxem a že máš hromadu příkladů na netu.
Vše funguje.
Podle mě nejsi schopná si vygooglit relevantní příklady na ajax, proto jsem se ptal co vůbec chceš abych ti s tím googlením pomohl. ono totiž vůbec není jasné co chceš.
Jo a taky z těch tvých kódů tak nějak jde vidět, že netušíš co je to javascript a php. A i proto jsem psal, že by bylo nejlepší abys popsala z uživatelského hlediska oč ti vlastně jde.
Tak jsem pro tebe sesmolil příklad. Jen doufám, že zas nebudeš psát něco jinýho.
index.htm
test.php
A co to má přesně dělat? Mě to teda vypíše do elementu s id demo celou html stránku ze které se JS volá, jinak to nedělá nic.
A máš to uložený na webhostingu s podporou php (na lokálním nebo na netu)?
Neotevíráš to normálně jako soubory uložené na disku?
Máš ten první kód uložený jako index.htm a ten druhý jako test.php?
Mně to funguje. A z kódu je snad jasné, co to má dělat a přesně to to dělá.
Načte se stránka index.htm v prohlížeči. Klikne se na Request, tím dojde k odeslání dotazu na test.php, kdy je dotaz odeslán přes ajax metodou post a proměnná je ta, kterou jsi uvedla (val=string). Test.php vrátí odpověď "nejaky ysledek" (nejdřív se tedy ještě ověří, jestli je opravdu v post var string) a ta se načte přes innerHTML do id s názvem demo.
- Na lokále s php
- ne
- mám dva soubory ale oba jsou v php
Je v těch kód přesně stejný kód jako je uveden výše, nebo jsi to nějak upravovala?
Zkoušela jsem to všelijak ale výsledek je stejný.
Vytvořila jsem ale index.html a vložila to do něj a funguje to, ale proč to vrací v php celou html stránku
A když to máš v PHP, máš tam "echo"?
Mám tam echo.
Můžeš sem teda dát tvé zdrojové kódy? Ať nepátráme naslepo.
Tak to tvoje zabal a někam uploadni
Tak, mám 2 soubory a v nich přesně tohle / nefunguje to
index.php
test.php
Když přejmenuji index.php na index.html všechno funguje.
PS: je to všechno ořezaný ale chová se to stejně..
No a kde máš to echo, na které jsem se ptal?
No přeci v tom souboru test.php
Samozřejmě jsem to zkoušela celý soubor index.php dát do uvozovek a vytisknout to echem, výsledek je stejný..
Mně se to chová úplně stejně (pojmenované s htm nebo php) a přesně tak, jak by se to chovat mělo, prostě to vypíše v obou případech celou cestu k souboru.
Opraveno, stačilo dát před test.php lomítko..
Tak teď to jdu konečně vyzkoušet.
Nemáš tady chybu?
Nemá to být misto xhttp.send("val=".val); takto xhttp.send("val="+val); ?
To je možné, javascript moc neumím, já to střelil od oka, bez tečky to nefungovalo, tak jsem dal tečku jako v php
a s ní to fungovalo. Jak je to správně v javascriptu netuším.
Já taky v JS taky nedělám, ale tohle je jedna z asi tří věcí co vím
Moc děkuji za pomoc, díky lomítku jsou i všechny nalezené příklady funkční.
Jinak potřebuji dále pracovat s tím výsledkem, ale zjistila jsem, že to na výsledek nečeká, odešle se požadavek a script běží dál, jak to mám opravit?
Na výsledek se nečeká, ten je dostupný až v xhttp.onreadystatechange. Takže práci s ním přesuň do té funkce.
Nejde to náhodou nastavit tím třetím parametrem v open s názvem async?
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/open
V příkladech tu je true, tedy asynchronně, pokud by to bylo false, bylo by to synchronně.
Netuším jestli je to to co chceš.
Jak jsem psal, v javascriptu moc neumím, tak to jen střílím od oka.
Jen aby se ti to pak třeba ale nekousalo...
Jo a ještě poznámka, proč v roce 2018 řešíš i Microsoft.XMLHTTP?