HTML anchor tag a odosielanie POST

Programovacie jazyky, rady, poradňa...
weroro
Flash coder
Flash coder
Používateľov profilový obrázok
Príspevky: 3206
Registrovaný: 14 feb 2009, 22:34
Bydlisko: Bratislava
Kontaktovať používateľa:

HTML anchor tag a odosielanie POST

Príspevok od používateľa weroro »

Zdravím.

Už hodnú chvíľu hľadám (asi zle hladám) a skúšam ako sa dá odoslať POST cez klasický anchor. Bez úspechu. Potrebujem to na odoslanie upresňujúcej premennej, pomocou ktorej budem zobrazovať iba určitú časť webovej stránky a zároveň chcem dosiahnuť to, že ak si niekto skopíruje adresu tak ho hodí do kompletnej ponuky a nie iba to vybranej, ktorá sa zobrazí na základe post hodnoty.

napr. mám zoznam služieb [sluzby.php], a na index stránke [index.php] mám zoznam troch služieb. Po kliknutí na nejakú z tých položiek [presmeruje na sluzby.php] chcem aby sa mi odoslala POST premennú ktorú súbor sluzby.php spracuje a na základe toho zobrazí iba jednu danú službu. Ak nebude POSt premenná prijatá [odkážem iba na sluzby.php bez POSTu], zobrazí sa kompletná ponuka služieb. Dá sa to nejako bez toho aby som musel použiť formulár?

Ďakujem.
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: HTML anchor tag a odosielanie POST

Príspevok od používateľa BX »

Presne na toto existuje GET a POST existuje na iné, nie?
weroro
Flash coder
Flash coder
Používateľov profilový obrázok
Príspevky: 3206
Registrovaný: 14 feb 2009, 22:34
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: HTML anchor tag a odosielanie POST

Príspevok od používateľa weroro »

A ako to mám zapísať?

Kód: Vybrať všetko

<a href="sluzby.php?ref=5" target="_self" method="post">link</a>
a ako a kde tam zapíšem hodnotu premennej ktorú chcem odosielať cez POST?
javatar
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6112
Registrovaný: 12 aug 2010, 14:49
Bydlisko: I don't exist at all.

Re: HTML anchor tag a odosielanie POST

Príspevok od používateľa javatar »

neodosiela sa nahodou cely formular automaticky?
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: HTML anchor tag a odosielanie POST

Príspevok od používateľa BX »

Kód: Vybrať všetko

<a href="sluzby.php?moja_premenna=hodnota" target="_self">link</a>
Takto som to myslel. A môžeš sa zariadiť podľa $_GET["moja_premenna"]
POST mi tu príde zbytočný
weroro
Flash coder
Flash coder
Používateľov profilový obrázok
Príspevky: 3206
Registrovaný: 14 feb 2009, 22:34
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: HTML anchor tag a odosielanie POST

Príspevok od používateľa weroro »

Ja to takto chcem riešiť, lebo sa bojím, že mi bude google považovať sluzby.php a sluzby.php?premenna=nieco za duplicitu [dve rôzne adresy s rovnakým obsahom, podobne ako považuje za duplicitu nieco.sk a nieco.sk/index.php]. Preto tam nechcem žiadny GET, ktorý sa bude meniť. Očakával som, že ak budem posielať POST tak nepotrebujem tú hodnotu za otáznikom.
sharky-no
King
King
Používateľov profilový obrázok
Príspevky: 1681
Registrovaný: 31 okt 2006, 19:53

Re: HTML anchor tag a odosielanie POST

Príspevok od používateľa sharky-no »

tak potom cez jQuery a ajax najjednoduchsie cez http://www.malsup.com/jquery/form/
weroro
Flash coder
Flash coder
Používateľov profilový obrázok
Príspevky: 3206
Registrovaný: 14 feb 2009, 22:34
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: HTML anchor tag a odosielanie POST

Príspevok od používateľa weroro »

Kvôli jednej prkotine nebudem ťahať celý balík, som posadnutý optimalizáciou, však by som šiel sám proti sebe. :D Ale vďaka za návrh riešenia. Budem to musieť celé prepísať a vyhútať sofistikovanejšie.


Vďaka všetkým.

A Javatar: Formulár som vylúčil hneď v prvom príspevku.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: HTML anchor tag a odosielanie POST

Príspevok od používateľa audiotrack »

nemusis nic prepisovat, ja ti pomozem ale az zajtra rano budem na pc. Vidim to tak na 5 riadkov javascriptu
weroro
Flash coder
Flash coder
Používateľov profilový obrázok
Príspevky: 3206
Registrovaný: 14 feb 2009, 22:34
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: HTML anchor tag a odosielanie POST

Príspevok od používateľa weroro »

Dík Audio, mám dosť času. :)

Ono úplne geniálne by bolo, keby existovala možnosť, že by som zavolal sluzby.php s nejakou kotvou sluzby.php#flash a tá by sa zvýraznila. To preto aby to bolo funkčné aj v prípade, že má užívateľ vypnutý JS lenže to už bez JQf nepôjde [ja tiež musím kraviny vymýšľať. :D ]. Neva, ako bude, tak bude.
sharky-no
King
King
Používateľov profilový obrázok
Príspevky: 1681
Registrovaný: 31 okt 2006, 19:53

Re: HTML anchor tag a odosielanie POST

Príspevok od používateľa sharky-no »

weroro ruku na srdce :) kolko ludi ma vypaty v tejto dobe javascript?
weroro
Flash coder
Flash coder
Používateľov profilový obrázok
Príspevky: 3206
Registrovaný: 14 feb 2009, 22:34
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: HTML anchor tag a odosielanie POST

Príspevok od používateľa weroro »

Mám zaužívaný spôsob, keď robím akýkoľvek web, a to aby bol plne použiteľný ak:
  1. má užívateľ vypnuté obrázky [takže vyplnené ALTy a pod. aby nebol stratený] + nastavovanie pevných rozmerov obrázkov všade kde je to len možné [v prípade absencie obrázku sa tak nerozpadne design]
  2. má užívateľ vypnutý Flash [niektoré veci ale proste nahradiť nejdú - hry a pod]
  3. má vypnutý JS [veľa ľudí používa práve JS na robenie menu efektov dokonca aj na reload stránok.. a ak vypneš JS, nedostaneš sa ďalej ako na index stránku, proste navigácia v kely.]
  4. a aby sa mi nerozsypal, keď ešte to 1% používa prehliadač Internal Error 6
sharky-no
King
King
Používateľov profilový obrázok
Príspevky: 1681
Registrovaný: 31 okt 2006, 19:53

Re: HTML anchor tag a odosielanie POST

Príspevok od používateľa sharky-no »

s 1. a 2. suhlasim :)

ale este som sa nestretol s uzivatelom ktory ma vypaty JS, viem si to predstavit na nejakych viac zabezpecenych pocitacoch napr. v banke. ale pokial to nie je poziadavka od klienta tak to fakt neriesim

a k 4. bodu, cloveku co pouzia IE6 by som dolamal ruky, a urcite mu ustupovat nebudem mojim kodom, ja mu este aj cez alert vynadam ze si ma updatnut prehliadac pretoze nezijeme v dobe kamenej

avsak, ked mas nejake zasady tak si ich maj, len som sa chcel k tomu vyjadrit :)
weroro
Flash coder
Flash coder
Používateľov profilový obrázok
Príspevky: 3206
Registrovaný: 14 feb 2009, 22:34
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: HTML anchor tag a odosielanie POST

Príspevok od používateľa weroro »

Obrázky sa vypínajú z jedného pochopiteľného dôvodu (iný ma nenapadne). Kvôli zníženiu dátového prenosu, aj v dnešnej dobe je ešte viac ako mrte ľudí s dátovo obmedzeným netom [mobily, etc.]. Prečo by teda taký ľudia ťahali JS balíčky, ktoré majú aj vyše 100KB? + jQuery sa väčšinou, používa najčastejšie práve v spojení s obrázkami, nie? [neviem nepoužívam ho]
sharky-no
King
King
Používateľov profilový obrázok
Príspevky: 1681
Registrovaný: 31 okt 2006, 19:53

Re: HTML anchor tag a odosielanie POST

Príspevok od používateľa sharky-no »

ono aj HTML5 ponuka kopu novych veci ako su databazy na strane prehliadaca, session, pracu so subormi a pod, a k vsetkym tymto funkcionalitam pristupujes len cez JS. Taktiez aj tvojom pripade by sa jQuery pouzilo na urcitu funkcionalitu a nie len animaciu alebo efektik.

Taktiez mam mobilny internet, ktory vyuzivam len na mobile a mam len 500MB predplatenych, a pravda je taka, ze som lenivy cez mobil chodit na weby a vyuzivam ho skor na komunikaciu (icq, skype, fb..), resp. ked idem na nejaky web, tak ma vlastnu mobilnu verziu (cp.sk) :)
maros7777
Light Expert
Light Expert
Príspevky: 61
Registrovaný: 21 okt 2006, 16:37

Re: HTML anchor tag a odosielanie POST

Príspevok od používateľa maros7777 »

weroro napísal:Mám zaužívaný spôsob, keď robím akýkoľvek web, a to aby bol plne použiteľný ak:
  1. má užívateľ vypnuté obrázky [takže vyplnené ALTy a pod. aby nebol stratený] + nastavovanie pevných rozmerov obrázkov všade kde je to len možné [v prípade absencie obrázku sa tak nerozpadne design]
  2. má užívateľ vypnutý Flash [niektoré veci ale proste nahradiť nejdú - hry a pod]
  3. má vypnutý JS [veľa ľudí používa práve JS na robenie menu efektov dokonca aj na reload stránok.. a ak vypneš JS, nedostaneš sa ďalej ako na index stránku, proste navigácia v kely.]
  4. a aby sa mi nerozsypal, keď ešte to 1% používa prehliadač Internal Error 6
nevysvetli si to zle, ale si chory :)

Kto ma v dnesnej dobe vypnuty js, tak na modernych weboch nemoze fungovat. Ajax najdes na kazdom trochu modernejsom webe. Takze, kto ma vypnuty js, nech si kamenmi rozrobi ohen a upece mamuta.

dufam, ze chapes ;)
Grim
Darca
Darca
Používateľov profilový obrázok
Príspevky: 8702
Registrovaný: 25 jún 2008, 0:54
Bydlisko: pod železničným mostom
Kontaktovať používateľa:

Re: HTML anchor tag a odosielanie POST

Príspevok od používateľa Grim »

...dnes vo "facebook age" si javascript už nikto nevypína...sharky-no má pravdu, nepodporuj hlupákov s IE6...treba ho zabiť a ty ho oživuješ...serieš všetkým, ktorí programujú weby do huby, lebo títo ľudia potom niesú nútení prechádzať na nové verzie prehliadačov, keďže "sa to zobrazuje dobre"...ja na weboch, ktoré som vytvoril nepodporujem už ani IE7, aj keď optimalizáciu preň robím, ale s varovaním, aby užívateľ prešiel na novšiu verziu...
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: HTML anchor tag a odosielanie POST

Príspevok od používateľa audiotrack »

weroro napísal:Dík Audio, mám dosť času. :)

Ono úplne geniálne by bolo, keby existovala možnosť, že by som zavolal sluzby.php s nejakou kotvou sluzby.php#flash a tá by sa zvýraznila. To preto aby to bolo funkčné aj v prípade, že má užívateľ vypnutý JS lenže to už bez JQf nepôjde [ja tiež musím kraviny vymýšľať. :D ]. Neva, ako bude, tak bude.

Kód: Vybrať všetko

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script>
function post(link,post){
	form = document.createElement("form");
	form.method = "POST";
	form.action = link.href;
	polia = (typeof post != 'undefined') ? post.split("&") : link.name.split("&");
	for(i in polia){
		try{
			var input = document.createElement("input");
			input.type='hidden';
			var tmp = polia[i].split("=");
			input.name=tmp[0];
			input.value=tmp[1];
			form.appendChild(input);
		} catch(err){
			return true;
		}
	}
	form.target = link.target ? link.target : "_self";
	document.body.appendChild(form);
	form.submit();
	document.body.removeChild(form);
	return false;
}
</script>
</head>

<body>

<a href="post.php" title="test" onclick="return post(this, 'premenna=pokus&premenna2=test')" target="_blank">test</a>

</body>
</html>

link bude fungovať aj s vypnutým JS, ale potom sa nepošlú žiadne hodnoty. Target môžeš používať aký chceš, rovnako tak môžeš použiť class, style a všetky ostatné vlastnosti odkazu. Hodnoty post vypíšeš ako druhý parameter pre funkciu, ak to potrebuješ dynamicky pripojiť na X odkazov napríklad podľa classname, tak volaj iba onclick="post(this)" a hodnoty pridaj ako name parameter, teda

Kód: Vybrať všetko

<a href="post.php" title="test" name="premenna=pokus&premenna2=test" onclick="return post(this)" target="_blank">test</a>
weroro
Flash coder
Flash coder
Používateľov profilový obrázok
Príspevky: 3206
Registrovaný: 14 feb 2009, 22:34
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: HTML anchor tag a odosielanie POST

Príspevok od používateľa weroro »

Bomba! :)

//autoeditácia príspevku (29 Nov 2012, 15:40)
Grim napísal:...dnes vo "facebook age" si javascript už nikto nevypína...
S odstupom času, musím napísať, že FB funguje aj bez JS. :) Takže ne JS alternatívy sú stále v kurze a je dobre na to myslieť.
sharky-no
King
King
Používateľov profilový obrázok
Príspevky: 1681
Registrovaný: 31 okt 2006, 19:53

Re: HTML anchor tag a odosielanie POST

Príspevok od používateľa sharky-no »

a skusal si niekomu napisat cez chat? alebo napisat nejaky koment? status napisat? zdielat daco? :P
Napísať odpoveď