jak zapsat absolutní adresu s polem
- Newer
- Člen | 47
Ahoj,
Prosím, tušíte:
jakým způsobem sestavit absolutní url adresu, ve které v jednom parametru
(Ids) předávám pole viz níže.
$pole = [1,2,3];
Nette mi generuje:
http://localhost/farma/sprava-objednavek/?Ids%5B0%5D=1&Ids%5B1%5D=2&Ids%5B2%5D=3&do=labelPdf
z cehož dokážu odvodit
- že %5B je zástupný znak pro [
- 5e %5D je zástupný znak pro ]
z přepisu je teda patrné, že parametr pro jednu hodnotu pole vypadá následovně
Ids%5B0%5D=N
což mi přijde dost nešikovné, protože, se URL roztáhne zbytečně o %5B KEY %5D při každé hodnotě pole…
zkoušel jsem všechny možné kombinace ale ostatní kombinace vyhazují
chybu.
Samozřejmě jsem googlil a prý by mělo jít zapsat Ids=[1,2,3], což je
vyhodnoceno jako string ne jako pole.
Ids%5B0%5D=[1,2,3] – nenalezen záznam s id [1,2,3]
Ids%5B0%5D=%5B1,2,3%5D – taky nejde
a tak dále.....
existuje nějaký elegantnější způsob než?
http://localhost/…-objednavek/?…
Díky moc.)
EDIT: Místo zástupných znaků lze použít klasické znaky [ a ] …
tzn lze:
http://localhost/farma/sprava-objednavek/?Ids[0]=1&Ids[1]=2&Ids[2]=3&do=labelPdf
Editoval Newer (9. 4. 2021 21:19)
- Newer
- Člen | 47
@DavidGrudl nn… napsal jsem si jquery script pro checkboxy v tabulce objednávek eshopu, + jeden navíc, takové to to zaškrtnout vše…
A podle toho co je zaškrtle vrací pole id objednávek
To pole chci poslat do handle signálu pro vytvoření pdfka s přehledem adresatu..
Vše mám, jen nevím jak lépe poslat pole z jquery do handle, než jako parametr přes url.
- Keeehi
- Člen | 36
Samozřejmě jsem googlil a prý by mělo jít zapsat Ids=[1,2,3], což
je vyhodnoceno jako string ne jako pole.
A to je snad problém? Vynechej ty hranaté závorky a v PHP použij explode.
A hned máš pole.
nn… napsal jsem si jquery script pro checkboxy
Takže se jedná o formulář. Nebo pokud v nette k tomu ekvivalentní form
nemáš, není problém ho dodělat, že? Takže by mělo jít použít i to co
posílal @Gappa.
Editoval Keeehi (10. 4. 2021 13:10)
- Newer
- Člen | 47
@Keeehi
- fce explode mě nenapadla, ani nevím proč… měl jsem v sobě pár piv… a striktně typovanou funkci co přijímá pole :-D
- řešení formulářem mi přišlo zbytečně moc pracné, když by to šlo lehce přes jquery(1 krátký script) … zasekl jsem se na tom poli v url.
Pořesim to tím explode, to je hned
Dík 👌
- CZechBoY
- Člen | 3608
vsak udelas form v nem tabulku s radky objednavek, na kazdem radku
checkbox
nekde budes mit nejaky javascriptovy tlacitko ktery o(d)skrtne vsechny checkboxy
v danem formulari/tabulce
potom muzes provest libovolnou hromadnou akci jakymkoliv submit tlacitkem
v nette udelas klasickej form s checkboxlistem kde kazdy checkbox ma hodnotu
id objednavky → pri onSuccess callbacku ti prijde pole id objednavek ktere
mely zaskrtnuty checkbox
- dakur
- Člen | 493
což mi přijde dost nešikovné, protože, se URL roztáhne zbytečně o %5B KEY %5D při každé hodnotě pole…
@Newer Vychází to z HTTP standardu, posílají se tak např.
formulářové prvky, které mají stejný název (atribut name
).
Je to jediný způsob, jak obecně zajistit, že se ty hodnoty správně
rozparsují. Pokud bys měl totiž ve value text s čárkou, najednou by ti
anotace s čárkou nefungovala:
?Předmět e-mailu,Dobrý den, je mi ctí, nashledanou.
-> očekávám předmět a text zprávy, dostanu ale pole o čtyřech prvcích
proto se to udělalo takto:
?parts[0]=Předmět e-mailu&parts[1]=Dobrý den, je mi ctí, nashledanou.
-> už mám správně pole o dvou prvcích
Pro některé use-casy je ?ids=1,2,3
dostačující a
jednoduché, pro jiné budeš muset použít []
variantu.
Editoval dakur (13. 4. 2021 8:52)