Ztrata parametru pri odeslani formulare
- odin
- Člen | 50
Zdravim
1. Mam formuluar s URL
/www/?id_individual_state=596920&action=detail&presenter=Results%3ADefault
(ten odkaz generuje DataGrid)
Pri odeslani formulare se me URL zmeni na
/www/?action=detail&do=detailForm-submit&presenter=Results%3ADefault
cili vypadne id_individual_state, jak tomu zabranim?
v presneteru je
<?php
protected function createComponentDetailForm($name) {
$form = new AppForm();
...
$form->addSubmit('Redraw', 'Redraw graph');
$form->onSubmit[] = array($this, 'detailFormSubmitted');
return $form;
}
?>
v sablone
<?php
{extends "Default.default.phtml"}
{block #content}
Here be results
{control detailForm}
<img src='{plink :Results:Default:detailimg, $sid}' alt='Graf funkce' />
{/block}
?>
2. jak muzu udelat input type=‚text‘ readonly ?
- odin
- Člen | 50
Diky, readonly funguje
ad 1) no mam formular, kteremu se predava parametr id_individual_state coz je zjednodusene IDcko zobrazeneho zaznamu a v okamziku kdy odeslu formular, tak ten parametr zmizi z adresy timpadem nevim s cim ve formulari pracuju. Proste jak udelam, aby v action formulare bylo to stejny URL jako ma ta stranka s formularem?
- Filip Procházka
- Moderator | 4668
iguana007 napsal(a):
Pokud vim, tak v action by spravne mela byt jen cesta k skriptu.
To ano, ale pouze když je formulář method="get"
Editoval HosipLan (11. 12. 2009 18:39)
- iguana007
- Člen | 970
HosipLan napsal(a):
iguana007 napsal(a):
Pokud vim, tak v action by spravne mela byt jen cesta k skriptu.
To ano, ale pouze když je formulář
method="get"
Spis kdyz tam je post ne? :)
Ostatne nevime, jak ten formular odesila – jestli GETem nebo POSTem, tedy alespon jsem si toho u prikladu vyse nevsimnul.
igi
- odin
- Člen | 50
mam stranku, ktera ma URL /sanaewi3/www/?id_individual_state=596920&action=detail&presenter=Results%3ADefault
ve strance mam nagenerovano
<form
action="/sanaewi3/www/?action=detail&do=detailForm-submit&presenter=Results%3ADefault"
method="post">
a chtel bych tam:
<form
action="/sanaewi3/www/?id_individual=453243&action=detail&do=detailForm-submit&presenter=Results%3ADefault"
method="post">
persitstentni ten parametr neni (pokud se persistentni parametr ucrucje
komentarem @persistent). Do hidden si to sice data muzu, ale to pak nejde
ziskat ve startup() pres $this->getParam('id_individual_state')
Jen cesta ke skriptu tam byt nemuze, ja ten parametr potrebuju pro nacteni
formulare a chci se vyhnout tomu, ze jednou to budu brat z formulare a jednou
z adresy.
- odin
- Člen | 50
skoro stejna funkce je v prikladu akrabat
kdyz v seznamu alb na „edit“, tak se dostanu na URL
document_root/?id=2&action=edit
kde je formular, ktery kdyz odeslu tak se dostanu na URL
document_root/?id=2&action=edit&do=albumForm-submit
problem je v tom, ze v me aplikaci se ten paramer „id“ pri odeslani formulare ztrati (tedy negeneruje se do action formulare).
- Filip Procházka
- Moderator | 4668
iguana007 napsal(a):
Spis kdyz tam je post ne? :)
Když mám GET formulář tak mam jenom cestu ke scpritu, když mám POST mám celou URL i s GET požadavky. Tohle jsou fakt základy, buďto jsme se těžce nepochopili, nebo máš hodně dobré mezery :)
iguana007 napsal(a):
alespon jsem si toho u prikladu vyse nevsimnul.
logicky když řeší parametry v action tak je to POST
odin napsal(a):
problem je v tom, ze v me aplikaci se ten paramer „id“ pri odeslani formulare ztrati (tedy
negeneruje se do action formulare).
Pokud ho dáš jako perzistentní, tak ti na 100% nezmizí.
Teď se dívám jak to tady mám řešené já a myslím si že pokud ten parametr napíšeš do té render metody čili
public function render<view_s_formularem>($id_individual_state){
// ...
}
tak si myslím že by se ti taky ztratit neměl
Editoval HosipLan (13. 12. 2009 15:05)
- odin
- Člen | 50
diky, to je ono
reseni je skutecne pridani parametru $id_individual_state do render metody
<?php
public function renderDetail($id_individual_state) {
parent::renderDefault();
...
}
?>
vubec jsem ten parametr nemel, protoze me tam k nicemu neni (potrebuju ho v createcomponent), takze me nenapadlo, ze to je dulezite