[Plone-IT] Ajax, Script e Zpt

Marco Mazzulli nerobrujah a gmail.com
Ven 9 Apr 2010 17:20:12 UTC


Non riesco a importare la libreria json negli script di python e non voglio
usare un external method.
Credo di starmi allontanando molto dalla soluzione, qualcuno potrebbe darmi
qualche suggerimento più approfondito?

Se ho capito bene al cambio della mia select principale (regioni) dovrebbe
essere richiamato il python script e lo stesso dovrebbe passare dei dati a
una funzione jquery che vada a popolare la seconda select...Come tutto
questo possa essere fatto, però, al momento mi sfugge.

Posso capire che chiedere una soluzione cosi specifica non sia lo spirito
della mail, ma sono proprio disperato adesso :(



Il giorno 09 aprile 2010 17.17, Simone Orsi <simahawk a gmail.com> ha scritto:

>  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/d2d7f5a1/attachment.html>


Maggiori informazioni sulla lista Plone-IT