Sziasztok!
Az lenne a kérdésem, hogy ha egy form-ot a submit-elés után redirect-tel szeretnék másik oldalra küldeni, akkor hogyan tudok átadni GET-tel értékeket ennek a következő oldalnak? Átolvastam elég sok idevágó részt a drupal.org-on, de sajnos nem találtam megfelelő megoldást. Tud valaki segíteni?
Fórum:
redirect ertekatadas
es miert $_GET-tel akarsz erteket atadni?
alternatíva?
Nem tudom megindokolni. Ha mondasz más, jobb alternatívát, nagyon szívesen veszem, és elfogadom.
ertek atadas
ha egy vagy ket erteket akarsz atadni ket form kozott akkor a legegyszerubb a menu path hasznalata
pelda:
ha tobb erteket akarsz atadni, akkor valoszinuleg valami multistep formot akarsz csinalni.
Itt volt rola szo http://drupal.hu/node/4380
ha valami mast akarsz, akkor jo lenne tudni mi a konkret celod..
nem form
Köszönöm szépen, nagyon tanulságos volt a leírásod, biztosan fogom is használni majd valamikor.
De most sajnos nem erre van szükségem. Nem formnak szeretném átadni az értéket, sőt, még csak nem is olyan értéket, amit a form-ból kapok. Egy másik oldalra szeretnék visszatérni a submit után, viszont ez az oldal úgy áll össze, hogy kell hozzá egy id, ez alapján változik a tartalom. Erre az oldalra vissza is tudok térni a redirect segítségével, de nem tudok adatot átadni.
Röviden:
Annyit szeretnék megvalósítani, hogy egy másik oldal töltődjön be a submit után, és ennek az oldalnak tetszőleges (egy darab) változó tartalmát át tudjam adni.
value
Erre a célra a "value" típusú form elemet használhatod:
Ha azt akarod, hogy a forráskódban se látszódjon az érték, arra van a "hidden" típus.
még mindig nem... :(
Nagyon köszönöm Neked is. :) De ezek még mennek, nem ezzel van a bajom
Írom másképpen. Van egy linkem:
Ezzel eljutok egy oldalra, és átadok neki egy id-t. Egy sima oldal, nincs form. Az oldal tartalma az id-től függ. Egy táblázatot kapok, ami egy adatbázislekérdezés, de csak a megadott id-jú dolgokat listázza. Itt minden sorban van egy link, ide kattintva egy másik oldalra jutok, ezen van a form-om, aminek a submit-je után vissza szeretnék jutni a táblázatos oldalra. Még ez is megy, mert megadom az elérési útvonalát, és kész. De szükségem van az id-ra, mert ugyanazt a táblázatot szeretném látni, mint amit az előbb.
Remélem, most már leírtam mindent, amit tudnotok kell ahhoz, hogy segítsetek!
Előre is köszi!
submit függvény return értéke
Minden sorban a link végén átadod az $id-t a linkben:
A formos oldalon kiszeded az URL-ből a query-t, és beteszed egy value vagy hidden típusú mezőbe. A _submit() függvényben ezt kiolvasod a $form_values-ból, összeállítod az útvonalat, és return-nel visszaküldöd az értékét. A _submit() lefutás után a látogató át lesz dobva a _submit()-ból visszaadott útvonalra.
... vagy nem értem a kérdést.
Igen, ez az...
De, igen, Edit, megértetted a kérdést, pontosan ezt szeretném, amit itt leírtál.
És én is pontosan így próbáltam csinálni először.
Azt hiszem, itt ronthatok el valamit. Két darab értéket szeretnék átadni. A felhasználó id-ját és a nevét. Ezek már két változóban meg is vannak.
Írnál egy mintát, hogy hogyan kell összeállítani az útvonalat? Így próbálkozok:
De ekkor a linkbe bekerül pár százalékjel és számok, és nem lesz jó.
nem kellenek különleges karakterek
Minek vacakolni &uid= és hasonlókkal? (Ha ragaszkodsz hozzá, akkor az urlencode() környékén nézz szét, ott lesz a hiba.)
Ebből csinál neked az l() egy ilyen útvonalat: valami/eleresiutvonal?122/pistike. Ha pedig a másik oldalon kellenek az adatok, akkor szétrobbantod a kérdőjelnél:
óvatosan
Persze az $uid-t és a $username-et ellenőrizni, mielőtt bármire felhasználod. De ezt gondolom nem kell ragozni :)
return $url?
De itt az $url-lel kellene visszatérnem? Mert abban az esetben bekerül a linkbe az, amit az l generál nekem, de az nagyon nem lesz jó.
mit csinál az alkalmazás?
Azt hiszem nem tettem neked jó szolgálatot ezzel az ötlettel. Elég komoly biztonsági kérdéseket vet fel, ha nem látod át, inkább ne használd. Inkább írd le, hogy mit csinálna az alkalmazás, hátha meg lehet kerülni a problémát.
konkret megoldas
szoval pelda:
van egy listad gyumolcsokrol, raklikkelsz az almara, es a kerdes az hogyan kerulsz vissza a gyumolcsokhoz mert sehol sem mondtad meg az almanak, hogy o egy gyumolcs
tegyuk fel, hogy ilyen utvonalaid vannak
/list/fruits
/product/apple
a product uvonal a kerdeses, hogy mit csinalj vele
vagy modositod /product/fruits/apple es akkor ott van, hogy o egy gyumolcs
vagy csinalsz /product/%product utvonalat amihez irsz egy load fuggvenyt ahol megmondod, hogy az alma az gyumolcs, es akkor a formod mar tudni fogja
persze a formon belul is megmondhatod az almanak, hogy gyumolcs, de az volt a cel, hogy atadjuk a formnak ezt az erteket..
A megoldás
Csak hogy lássuk a végét is ennek a témának...
Hátha valakinek a hasznára válik rajtam kívül.
http://api.drupal.org/api/function/url/5
Erre lettem volna kíváncsi.
indokold meg
Hogy tényleg másnak is hasznára váljon, indokold meg kérlek, hogy miért jobb neked az url() mint az l() függvény?
Indoklás
Jó, akkor megindoklom. Remélem, nem baj, ha a Drupal API Reference-ből idézgetek.
l() dokumentációjából:
Nekem nem link kellett, hanem egy elérési útvonal, egy path.
Szóval innen jutottam el a url()-hez, éppen emiatt.
url() dokumentációjából:
Tehát, ez kell nekem.
Szóval, ha linkekről van szó, jobb az l(). De nekem nem link kellett, mint említettem.