PHP formok kezelése linkekkel - hogyan?
Sziasztok!
Van egy PHP programom, ami a websiteom menürendszerét úgy generája, hogy a menüben levő linkek egy formon belül vannak, és kattintásra elküldik azt. Így:
A PHP kód egy XHTML fájlba van beágyzva, és a W3C validátora érvénytelennek találja, mivel a form elemnek nem lehet name paramétere. Viszont ha helyette az id-t írom, a form nem lesz elküldve, hanem egy hibaüzenetet kapok, amikor a linkre kattintok.
A kérdésem az, hogy hogyan lehet elérni ugyanezt a hatást a name paraméter nélkül, úgy, hogy a kód érvényes XHTML kód maradjon???
Venemo
■ Van egy PHP programom, ami a websiteom menürendszerét úgy generája, hogy a menüben levő linkek egy formon belül vannak, és kattintásra elküldik azt. Így:
<object>
<form action='/chaosrpg/új/index.php' method='post' name='frmCikkelyMP0'>
<div class='sor'>
<input type='hidden' name='fomenupont' value='3'/>
<input type='hidden' name='almenupont' value='2'/>
<input type='hidden' name='cikkely' value='0'/>
<a href='#' onclick='document.frmCikkelyMP0.submit()'>Cikkcím</a>
</div>
</form>
</object>
<form action='/chaosrpg/új/index.php' method='post' name='frmCikkelyMP0'>
<div class='sor'>
<input type='hidden' name='fomenupont' value='3'/>
<input type='hidden' name='almenupont' value='2'/>
<input type='hidden' name='cikkely' value='0'/>
<a href='#' onclick='document.frmCikkelyMP0.submit()'>Cikkcím</a>
</div>
</form>
</object>
A PHP kód egy XHTML fájlba van beágyzva, és a W3C validátora érvénytelennek találja, mivel a form elemnek nem lehet name paramétere. Viszont ha helyette az id-t írom, a form nem lesz elküldve, hanem egy hibaüzenetet kapok, amikor a linkre kattintok.
A kérdésem az, hogy hogyan lehet elérni ugyanezt a hatást a name paraméter nélkül, úgy, hogy a kód érvényes XHTML kód maradjon???
Venemo
Változtass a PHP-n
--
slink
http://20y.hu/
Nem a PHP-vel van a gond
(A hibaüzenet az IE felugró ablakában jelent meg, a PHP-nek ehhez semmi köze nincs.)
Venemo
getElementById
<form action='' method='post' id='frmCikkelyMP0'>
<div class='sor'>
<input type='hidden' name='fomenupont' value='3'/>
<input type='hidden' name='almenupont' value='2'/>
<input type='hidden' name='cikkely' value='0'/>
<a href='#' onclick="document.getElementById('frmCikkelyMP0').submit()">Cikkcím</a>
</div>
</form>
</object>
Gyulus
Kösz!
A getElementById-t pedig nem ismertem. Kösz!
object
Az object rossz választás.
--
Szeretettel: Károly György Tamás
kgyt&kgyt.hu - http://kgyt.hu
Minek POST?
GET
-es kérés küldése ehhez?Attila
jelszavak
Re: jelszavak
Mindenestre az ajánlott megoldás az lenne, ha beléptetnéd egyszer a felhasználót és indítanál egy munkamenetet, ami alapján már tudod azonosítani:
PHP: Munkamenet kezelő függvények
http://hu.php.net/session
Attila
Hiddenek lesznek
A munkamenet-függvényeket sajnos nem ismerem, de jó ötletnek tűnnek.
jelszó
--
Szeretettel: Károly György Tamás
kgyt&kgyt.hu - http://kgyt.hu
és a log fájlok?
cache
--
Szeretettel: Károly György Tamás
kgyt&kgyt.hu - http://kgyt.hu
Vagy a link helyére egy css
Igy még a javascript sem kell a működéshez. Egyebként miért választottad ezt a szokatlan megoldást? A form -oknak alapvetően más a funkciójuk!
bongyi
CSS formázott submit?
Hát ezt pár mondatban nem
bongyi
button, mint link
class="submit"
Szeretettel: Károly György Tamás
kgyt&kgyt.hu - http://kgyt.hu
Kösz!
Gondolom ez is működik:
border: 0 solid transparent;
background: transparent none repeat;
text-decoration: underline;
color: #009;
}
input.submit:hover {
border: 0 solid transparent;
background: transparent none repeat;
text-decoration: underline;
color: #fff;
background-color: #fc3;
}
Pár apró javítást tennék bele...
Szeretettel: Károly György Tamás
kgyt&kgyt.hu - http://kgyt.hu
csak ami valtozik
a :hover definialasnal mindig csak azokat a tulajdonsagokat erdemes megadni ami megvaltozik, igy kisebb a fajl es fokent atlathatobb!
Jó ötlet.
div helyett fieldset
Az object helyett pedig hasznald inkabb a DIV-et a FORM-ot körülfogó elemnek, bár kicsit kicsit furcsálom, hogy a form nem állhat magában.
Ez a linkelesi megoldas egyebkent nagyon GANY! Miert nem GET-tel vagy meginkabb beszedes URL-ekkel van megoldva?
Google nem fogja tudni elérni, javascriptet letiltott bongeszoben nem fog menni, nem lehet Firefoxban kozepso gombbal uj tabba nyitni! Stb,stb!
Csereld ki!
Kösz a tippeket
Azért nem GET, mert a GET-nél a nem kívánt dolgok (pl. a jelszó) látszanának a címsávban. "Beszédes URL"-ről még nem hallottam.
A Google-nak nincs mit elérnie, mivel a link nem egy másik lapra mutat, hanem önmagára. Nekem sem tetszik ez a megoldás, de eddig nem találtam jobbat. Esetleg úgy, ahogyan javasoltátok: CSS-sel formázott submit gombbal.
Még ráérsz
Egyébként, ha jelszót akarsz átadni, arra a hidden sem felel meg, hiszen bárki belenéz forráskódba, aztán látja a titkodat!
P][G
form befoglalása
Én arra tippelek, hogy te egy inline elembe zártad a FORM-ot!
(Inline ("sorbeli") elemek azok amik nem törnek új sorba.)
Egyébként object esetén az objecten belűli kódnak csak akkor kell megjelennie, ha az objectnek megadott paraméterű dolgot a böngésző nem tudja megjeleníteni. Object segítségével szoktuk betenni pl a Flash-t vagy valamilyen video megjelenitő plug-int.
Beszédes URL: amikor nem olyanok vannak a címsorbn, hogy lekero.php?id=21&kategoria=45 hanem
domain.hu/cikkek/css/gombformazas.html
Ehhez be kell allitani a webszervert, hogy a lekero.php-nek adja at a cikkek utani reszt mint parameter. Az ott levo php progidban pedig feldolgozod a szoveges parametereket es az alapjan adod ki a doksit.
Bejelentkezés, jelszó kezelése
Ennek megvan a maga módja, olvass utána, ahogy feljebb említette valaki a munka menet kezelésnek, beléptetésnek.