Autor | Zpráva | ||
---|---|---|---|
Smolař Profil * |
#1 · Zasláno: 15. 2. 2012, 13:26:16
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 |
#2 · Zasláno: 15. 2. 2012, 13:41:16
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 * |
#3 · Zasláno: 15. 2. 2012, 14:39:16
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); } }); }); }); |
||
_es Profil |
#4 · Zasláno: 15. 2. 2012, 15:24:39
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 * |
#5 · Zasláno: 15. 2. 2012, 15:34:38
_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 |
#7 · Zasláno: 15. 2. 2012, 15:48:39
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", |
||
Smolař Profil * |
#8 · Zasláno: 15. 2. 2012, 16:04:52
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 |
#9 · Zasláno: 15. 2. 2012, 16:23:22
|
||
Smolař Profil * |
#10 · Zasláno: 15. 2. 2012, 16:43:18
_es:
Já nechci načítat parametry pomocí JS, já bych je chtěl načíst v tom souboru akce.php. Děkuji |
||
_es Profil |
#11 · Zasláno: 15. 2. 2012, 16:57:13
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 * |
#12 · Zasláno: 15. 2. 2012, 17:07:40 · Upravil/a: Smolař
_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 * |
#15 · Zasláno: 15. 2. 2012, 17:17:47
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 * |
#17 · Zasláno: 15. 2. 2012, 17:19:39
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 |
#18 · Zasláno: 15. 2. 2012, 17:22:16
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 * |
#19 · Zasláno: 15. 2. 2012, 17:22:53 · Upravil/a: Smolař
_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 * |
#21 · Zasláno: 15. 2. 2012, 17:30:16
_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 * |
#23 · Zasláno: 15. 2. 2012, 17:38:12
_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 * |
#25 · Zasláno: 15. 2. 2012, 17:44:48
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 |
#26 · Zasláno: 15. 2. 2012, 17:54:10
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 * |
#27 · Zasláno: 15. 2. 2012, 17:54:28 · Upravil/a: Smolař
_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 |
#28 · Zasláno: 15. 2. 2012, 17:59:36
Smolař:
„Ne, adresa je ve tvaru pro SEO, čili: ht>tp://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 |
#29 · Zasláno: 15. 2. 2012, 18:04:08
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 * |
#30 · Zasláno: 15. 2. 2012, 18:08:49 · Upravil/a: Smolař
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? |
||
Téma pokračuje na další straně.
|
0