Dynamické předání parametru do handlu
- gavec
- Člen | 68
Ahoj, potřeboval bych nějakým způsobem po akci change nějakého select boxu předat ID dané položky do handlu a dále s timto ID pracovat. Jedná se tedy o ajaxovou operaci. Javascript mi funguje. I předání statického parametru jde bez problému. Jakmile chci do parametru vlozit js promennou, v handlu se to chova jako string.
<script>
$(function(){
$('select.ajax').live('change',function(){
id=$(this).val();
$.get({link change! 'id'=>id});
return false;
});
});
</script>
Tento příklad do handlu vlozi string „id“ misto hodnoty, ktera by mela byt v proměnné id definovane vyse.
Nevěděl by prosím někdo, jak se dá parametr předat??
- newPOPE
- Člen | 648
V prvom prispevku miesas hrusky (Latte) z jablkami (JS). (Ak teda dobre rozumiem problemu)
<script>
$.get({link change! 'id'=>id});
</script>
je samozrejme ze ti to posle ‚id‘ a nie hodnotu z JS. Skusil by som to takto:
<script>
var id = ...;
$.get({link change!}, { id: id});
</script>
- gavec
- Člen | 68
newPOPE napsal(a):
V prvom prispevku miesas hrusky (Latte) z jablkami (JS). (Ak teda dobre rozumiem problemu)
<script> $.get({link change! 'id'=>id}); </script>
je samozrejme ze ti to posle ‚id‘ a nie hodnotu z JS. Skusil by som to takto:
<script> var id = ...; $.get({link change!}, { id: id}); </script>
Takhle jsem to taky zkoušel, ale nefunguje. Nemuze byt problem v handlu?
public function handleChange($id){
$this->foo = $id;
if($this->isAjax()){
$this->invalidateControl('pokus');
}
}
- gavec
- Člen | 68
Pomocí konzole jsem zjistil, že to id se předává pomocí skriptu, který poslal newPope. Problém je v tom, že se mi ten parametr nedaří vytáhnout v handlu. Url která se při požadavku posílá, je následující.
/?do=change$id=16
Pomocí $this->getParam(‚id‘); se mi ale parametr nepodařil vytáhnout.