[Plone-IT] Ajax, Script e Zpt

Simone Orsi simahawk a gmail.com
Ven 9 Apr 2010 15:17:13 UTC


Ciao,
On 04/09/2010 04:55 PM, Marco Mazzulli wrote:
> Ciao a tutti, uso da poco zope e mi trovo di fronte a un problema che
> spero possiate aiutarmi a risolvere.
>
> Vi descrivo la mia situazione:
>
> *Regione: <select id="reg" tal:define="regioni
> python:context.script.getRegioni()">
> <tal:block repeat="tuplaReg regioni">
> <option tal:attributes="value python: tuplaReg[0]"
> tal:content="python: tuplaReg[1]"/>
> </tal:block>
> </select>
>
> *Il page templare chiama lo script che chiama lo z sql method. Ora
> vorrei che, una volta scelta la regione, la select seguente (quella
> delle province di tale regione) dovrebbe popolarsi con le sue città.
>
> Vorrei fare la cosa tramite ajax: è possibile usarlo per richiamare lo
> script delle città SENZA ricaricare la zpt?
quello che ti serve è un file *.js.dtml e uno script python (una vista
con un metodo che faccia da webservice sarebbe meglio)

nel js dovresti fare qualcosa del genere:

jq(document).ready(function(){
   
    jq('#reg').change(function(){
         jq.post(
                url_python_script_o_ws,
                {regione: jq('#reg').val()},
                function(results){
                    var data = eval('(' + results + ')');
                    jq(data).each(function(n){
                        jq('select#cities').append('<option
value="'+this.city_id+'">this.city_name</option>')
                    });
                });   
    })

});

Lo script python dovrà prendere il valore passato e restituire un dato
serializzato tramite json.

NOTA
- il codice proposto serve solo per darti uno spunto. L'ho scritto così
al volo quindi non va preso per "funzionante" :)
- Le variabili "city_id" "city_name" ecc sono variabili che devi creare
e passare tu nel risultato della chiamata ajax

Ora sono di fretta quindi non ti posso aiutare oltre... ricorda però che
google è tuo amico! :)

HTH,
SimO
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.plone.org/pipermail/plone-plone-it/attachments/20100409/35a88144/attachment.html>


Maggiori informazioni sulla lista Plone-IT