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?
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á
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?
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ěď
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
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).ernst napsal: ano kontroloval, vše OK
Myslím, že by se to mělo vypsat v tom PHP