Přihlásit se

Joomla 5.0.1 a 4.4.1 bezpečnostní vydání (29 lis 2023)

Joomla 5.0.1 a 4.4.1 je nyní k dispozici. Jedná se o bezpečnostní vydání pro Joomla 4.x. a 5.x.

předání dat z javascript do PHP

21. zář 2015 14:16 #123497
Odpověď od Ernst
Joomla Expert
Já Vám strašně moc děkuji, že si mi takto věnujete. Hodně jste mně toho naučil.
ten sled funkcí se mi taky nezdál, ale fungovalo to. Dokonce jsem měl hned na začátku nadefinovány ty dvě proměnné, ale nebylo to třeba. Vysvětlit to samozřejmě neumím ani nepotřebuji.
To "a" jsem tam měl jen proto, že jsem zatím neuměl odeslat zpět dvě proměnný, tak jsem si výsledek v php rozdělil pomocí toho "a" na dvě proměnný.
Pomocí toho v php
$document = &JFactory::getDocument();
$document->addScript('/components/com_lovefactory/js/lokace.js');
se mi javascript odešle (do console vypíše odesláno), Jak to vlastně funguje mi není zcela jasné, ale beru to jako fakt a později se to doučim.
ale v tom lokace php to asi nemohu přečíst jako $_REQUEST ale musím použít $_GET?
Studoval jsem to na mnoha webech, nejnověji na jaknajquery.cz/ajax-a-jquery/ a www.koding.cz/priklady.php?id=26

Samozřejně bych raději upravil tu komponentu (z ní to volám) ale přijímám v jiném PHP, ale zatím to neumím.
Jde o stránku, kde zobrazuji uživatele a potřebuji vypsat vzdálenost od mé aktuální pozice.
Takže tu stránku (funkci) musím nějak znovu zavolat s parametry, které jsem získal z JS.
Nebo ten JS volat o něco dřív a použít Vámi nenáviděnou globální proměnnou s mojí geolokací. To by také teoreticky šlo?

21. zář 2015 16:11 #123498
Odpověď od Ernst
Joomla Expert
Někde je chyba a nevím kde
lokace.js:
jQuery(function(){
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
jQuery.ajax({
url: '/components/com_lovefactory/models/lokace.php',
data: {lat: position.coords.latitude, lgt: position.coords.longitude}
}).done(function(){
console.log('Odeslano');
}).fail(function(){
console.log('Odeslání selhalo');
});
}, function(error){
console.log('Zjitění souřadnic selhalo');
console.log(error.message);
});
}
});

ale to lokace.php se nezavolá

22. zář 2015 09:41 #123505
Odpověď od Ernst
Joomla Expert
Tedy ono se zavolá:
GET http://localhost/components/com_lovefactory/models/lokace.php?lat=50.0373925&lgt=14.309066399999999
ale v lokace php se mi nic neděje.
Poslané hodnoty nemohu zobrazit (třeba var_dump()) a když v tom lokace.php udělám úmyslně chybu syntaxe žádná chyba se nevypíše.
Prostě to vypadá, jako by to php neproběhlo.
Celé to lokace php jsem napsal jen:
<?php $lat = $_GET["lat"]; $lon = $_GET["lgt"];
var_dump($lat); var_dump($lat);?>

Ale nic se nevypíše. Kde prosím dělám chybu?

22. zář 2015 09:44 #123506
Odpověď od Cony
Moderátor
A kde jako čekáte, že se Vám to vypíše? Kontroloval jste v konzoli výsledek AJAX dotazu?

22. zář 2015 09:54 - 22. zář 2015 09:58 #123507
Odpověď od Ernst
Joomla Expert
ano kontroloval, vše OK
Myslím, že by se to mělo vypsat v tom PHP

PS Pokud do js přidám alert, tak to také vypíše správně

Možná jsme se trefili do stejného času a nečetl jste moji poslední odpověď

22. zář 2015 12:09 #123508
Odpověď od Cony
Moderátor

ernst napsal: ano kontroloval, vše OK
Myslím, že by se to mělo vypsat v tom PHP

Tak schválně, za domácí úkol se zkuste nad tím zamyslet, co to znamená to "vypsat v tom PHP", kde hledat to co si "vypíšte v tom PHP". (malá nápověda AJAX = Asynchronous Javascript And Xml).

Powered by Fórum