« 1 2 »
Autor Zpráva
Smolař
Profil *
Dobrý den, chtěl bych požádat o radu zdejší borce, mám takový problém. Dejme tomu, že jsem na stránce http://nejakadomena.neco/odkazy/nove/ (http://nejakadomena.neco/?get1=odkazy&get2=nove). Na této stránce spustím JS, který spustí soubor akce.php. V tomto souboru když dám pomocí if zkontrolovat existenci get1 nebo get2, výsledek je vždy neexistující get1 či get2. Můžete mi prosím poradit kde hledat chybu? Nebo se nejdená o chybu a volaný soubor akce.php prostě takovou adresu nevidí? Děkuji uctivě za pomoc.
Tori
Profil
Smolař:
Na této stránce spustím JS, který spustí soubor akce.php.
Je potřeba do volané URL zkopírovat parametry z aktuální stránky (window.location.search).
Smolař
Profil *
Děkuji Tori za pomoc, mělo by to tedy být takto?

$(document).ready(function () {
$('.specialniklasa') .click(function(){
  $.ajax({
    url: "/akce.php",
    type: "POST",
    data: {parametr: $(this).attr('id')},
    window.location = newLocation;
    success: function(){
    top.location.reload(true);
    }
  });
});
});
Ještě jednou děkuji
_es
Profil
Smolař:
V tomto souboru když dám pomocí if zkontrolovat existenci get1 nebo get2, výsledek je vždy neexistující get1 či get2.
No tak zavolaj skript akce.php/?get1=odkazy&get2=nove
Zavolanie typu GET je odoslanie dát v adrese a keď ich neodošleš, tak tam predsa nie sú.
Smolař
Profil *
_es:
Nevím jestli jse si všiml, ale mám tam type: "POST".
_es
Profil
Smolař:
ale mám tam type: "POST".
čo neznamená, že nemôžu byť dáta odoslaná súčasne aj v adrese GET spôsobom.
Dokumentácia jQuery pre funkciu $.ajax: vlastnosť "window.location" medzi vlastnosťami objektu odoslaného do funkcie nie je.
Keeehi
Profil
Smolař:
Nevím jestli jse si všiml, ale mám tam type: "POST".
To vůbec ničenu nevadí.

url: "/akce.php/?get1=odkazy&get2=nove",
by mělo fungovat
Smolař
Profil *
Problém je v tom, že bych potřeboval aby data zůstala v poli, pro pozdější zpracování. To co psala Tori neni možné realizovat? Zkoušel jsem to jak jsem psal ale nefunguje mi to :-( Děkuji

$(document).ready(function () {
$('.specialniklasa') .click(function(){
  $.ajax({
    url: "/akce.php",
    type: "POST",
    data: {parametr: $(this).attr('id')},
    window.location = newLocation;
    success: function(){
    top.location.reload(true);
    }
  });
});
});
_es
Profil
Smolař:
data: {parametr: $(this).attr('id')},
window.location = newLocation;
To je čo? To je predsa syntaktická chyba. Pozri si niekde syntax objektových literálov, napríklad tu.
Ak chceš v JS prečítať GET parametre v aktuálnej stránke, tak to ti už poradila v [#2] Tori.
Smolař
Profil *
_es:
Já nechci načítat parametry pomocí JS, já bych je chtěl načíst v tom souboru akce.php. Děkuji
_es
Profil
Smolař:
já bych je chtěl načíst v tom souboru akce.php
No tak ale najprv ich musíš tomu PHP skriptu nejako odoslať, nie?
Smolař
Profil *
_es:
No to je právě to zlo... Proč mám předávat souboru akce.php adresu když na ní pořád jsem, respektivně volám z té url ten soubor akce.php. Celou dobu se ptám na to, jestli je to chyba nebo jestli je to normální a jestli je, tak proč ji ten soubor nevidí :-) Díky


Nehledě na to, že bych potřeboval pracovat z tou url jako z polem...
_es
Profil
Smolař:
Proč mám předávat souboru akce.php adresu když na ní pořád jsem
No ale načítaný PHP skript nemusí mať nič spoločného s aktuálnou stránkou. Prečo by mal mať?
Ak chceš nejako PHP skriptu get parametre aktuálnej stránky odoslať, tak ich odošleš. Napríklad načítaš „natvrdo“ "/akce.php/?get1=odkazy&get2=nove" alebo odošleš get parametre načítanej stránky v adrese "/akce.php"+location.search.
Tori
Profil
Smolař:
Proč mám předávat souboru akce.php adresu když na ní pořád jsem
Skript akce.php je na serveru, nevidí jakou stránku máte zrovna u sebe načtenou v prohlížeči. Když mu nepošlete ty parametry URL, odkud je jinak má vzít?

bych potřeboval pracovat z tou url jako z polem
když jsem hodila do googlu "javascript parse url parameters", našel mi kopec použitelných odkazů.
Smolař
Profil *
Tori:
No! to je odpověď, teď je to logické a dává to smysl.. Super!

no a teď tedy jak poslat ta data? :-( Co mám v tom scriptu špatně? Udělám z těch přenesených dat nějak v php pole?

Děkuji
_es
Profil
Smolař:
bych potřeboval pracovat z tou url jako z polem
To znamená čo? Ako? V PHP? V JS?


Smolař:
no a teď tedy jak poslat ta data?
[#13].
Smolař
Profil *
Tori:
když jsem hodila do googlu "javascript parse url parameters", našel mi kopec použitelných odkazů.
Mě by stačilo poslat celou tu URL, poperu se s tím v php...
_es
Profil
Smolař:
Mě by stačilo poslat celou tu URL, poperu se s tím v php...
No veď to máš už v [#13]:
"/akce.php"+location.search
Smolař
Profil *
_es:
To znamená čo? Ako? V PHP? V JS?
už v PHP. No tohle by možná stačilo, ale jak to v php načtu? Není tam název proměnné :-( Díky


_es:
myslel jsem tohle
"/akce.php"+location.search
_es
Profil
Smolař:
jak to v php načtu?
Tak ako hocijaké iné GET parametre - aj keď ide o POST požiadavku.
Smolař
Profil *
_es:
/?a=ahoj&b=nazdar&c=cus

echo $_GET['a']; // vysledek bude ahoj
echo $_GET['b']; // vysledek bude nazdar
echo $_GET['c']; // vysledek bude cus

ale tady žádný název nemám :-(
_es
Profil
Smolař:
ale tady žádný název nemám
Kde „tady“? Aký názov?

(http://nejakadomena.neco/?get1=odkazy&get2=nove). Na této stránce spustím JS, který spustí soubor akce.php. V tomto souboru když dám pomocí if zkontrolovat existenci get1 nebo get2, výsledek je vždy neexistující get1 či get2.
Ak nenačítaš "/akce.php" ale "/akce.php"+location.search tak bude get1 aj get2 existovať - medzi GET parametrami - to si snáď chcel, či nie?
Smolař
Profil *
_es:
Ano, proč ale ty get1 a get2 neexistují když je kontroluji pomocí if v php?
_es
Profil
Smolař:
proč ale ty get1 a get2 neexistují když je kontroluji pomocí if v php?
A odoslal si naozaj z JS požiadavku na adresu "/akce.php"+location.search?
Je JS spustený zo stránky, ktorej adresa končí na ?get1=odkazy&get2=nove?
Ako v PHP kontroluješ, či boli prijaté GET parametre 'get1' a 'get2'?
Smolař
Profil *
1) Spustím odkazem js script
<a class="specialniklasa" href="#">Akce</a>

2) Spustí se script
$(document).ready(function () {
$('.specialniklasa') .click(function(){
  $.ajax({
    url: "/akce"+location.search,
    type: "POST",
    data: {parametr: $(this).attr('id')},
  });
});
});

3) V souboru akce.php
ifisset(GET['get_1']){
echo "get_1" existuje;
}else{
echo "get_1" neexistuje;
}

4) Výsledek po kliknutí na odkaz v bodu 1 je: get_1" neexistuje
_es
Profil
Smolař:
No a ako zistíš výstup z toho PHP skriptu, keď ho v JS nikde nezobrazuješ, len načítaš?

ifisset
To je čo za funkciu? Zátvorka za if je asi povinná.
Smolař
Profil *
_es:
Je JS spustený zo stránky, ktorej adresa končí na ?get1=odkazy&get2=nove?
Ne, adresa je ve tvaru pro SEO, čili: http://nejakadomena.neco/odkazy/nove/


_es:
No a ako zistíš výstup z toho PHP skriptu, keď ho v JS nikde nezobrazuješ, len načítaš?
Ano, zatím jen načítám...

To je čo za funkciu? Zátvorka za if je asi povinná.
To jsem se jen uklepl ;)
_es
Profil
Smolař:
Ne, adresa je ve tvaru pro SEO, čili: http://nejakadomena.neco/odkazy/nove/
No tak keď tam tie get parametre nemáš, odkiaľ ich má JS zobrať?
V tvare „pre SEO“? Čo je to za nezmysel? Prečo by malo vyhľadávač zaujímať, v akom tvare je URL?
Tori
Profil
Smolař:
Ne, adresa je ve tvaru pro SEO
Tak pak budete asi buď muset v JS rozebrat URL stejným způsobem, jakým ji zpracovává .htaccess, anebo celou aktuální URL poslat tomu skriptu akce.php jako parametr a nechat ho, ať ji rozebere on (má-li to teda být flexibilní).

ifisset(GET['get_1']){
Myslíte if (isset($_GET['get1'])) {?
Smolař
Profil *
Tori:
Myslíte if (isset($_GET['get1'])) {?
Ano, přesně tak


Tori:
poslat tomu skriptu akce.php jako parametr
A řeknete mi jak na to?
« 1 2 »

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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