Para fechar esse post, vou colocar o código que fiz para resolver o 
problema de retorno do script python para o javascript. Caso alguém 
futuramente precise.

# ZPT + Ajax.
<script language="Javascript" type="text/javascript">
function Processar(){
   codigocpr = $F('codigo_cpr');
   if (codigocpr == ""){
       alert ('Por favor, consulte');
   }else{
   url = 'consulta_fazendas_vinculadas_cpr_py';
   pars = 'codigo='+codigocpr
   myAjax = new Ajax.Request(url,
                             {method:'post',
                             parameters:pars,
                             onComplete: mostraResposta
                             });
   }  
}

function mostraResposta(resposta){
   tabela = $('tabela_fazendas');
   LimpaTabela(tabela);
   result = eval(resposta.responseText);
   for (x=0;x<result.length;x++){
       var linha = tabela.insertRow(1);
       var coluna = linha.insertCell(-1);
       coluna.innerHTML = result[x].nomefazenda;
       var coluna = linha.insertCell(-1);
       coluna.innerHTML = result[x].inscricao;
       var coluna = linha.insertCell(-1);
       coluna.innerHTML = result[x].cidade;
       var coluna = linha.insertCell(-1);
       coluna.innerHTML = result[x].estado;
   }
}

function LimpaTabela(tabela){
    //Removendo as linhas da tabela
    totLinhas = tabela.rows.length;
    for(i=1;i<totLinhas;i++){
        //Seleciona a segunda linha para ser excluida
        // para que não seja removido o cabeçalho
        tabela.deleteRow(1);
    }   
}
</script>

<span>[<a href="javascript:Processar();">Processar</a>]</span>

<table id="tabela_fazendas" style="margin-top:1em;" border="1">
  <tr>
    <th>Nome Fazenda</th>
    <th>Inscrição</th>
    <th>Cidade</th>
    <th>U.F</th>
  </tr>
</table>

# Script Python
# parametro codigo
consulta = context.zsql_fazenda(codigo=codigo).dictionaries()
return consulta

# ZSql Method.
# parameter codigo
SELECT CAST(faz_id AS INTEGER),
               CAST(faz_numero AS INTEGER),
                faz_nome AS "nomefazenda",
                faz_inscricao AS "inscricao",
                faz_cidade AS "cidade",
                faz_uf AS "estado"
               WHERE codigo_cpr = <dtml-sqlvar codigo type="int"> // 
Essa conversão com o CAST foi o grande "tcharannnn" do negócio.


[]'s
Fernando Paiva



Fernando Paiva escreveu:
>
> Zénrique
>
> Consegui fazer funcionar, o problema era com o return do script python
> que estava colocando L(long) na frente de campos inteiros. tipo 4L
> etc...Alterei isso no ZSQL com CAST e ficou blzinha.
> Para preencher a tabela naum vou conseguir apenas pelo id da tag, então
> vou ter que preencher a cada passagem pelo for. Aff, mas suadeira a 
> vista :D
>
> Obrigado Zénrique e Pythonwarrior pela ajuda.
>
> []'s
> Fernando Paiva
>
> José Henrique escreveu:
> >
> > Nenhum dos dois, "fiz na unha" mesmo :-). Veja o exemplo abaixo:
> >
> > <script language="javascript" type="text/javascript">
> >
> > var request = false;
> > try {
> > request = new XMLHttpRequest();
> > } catch (trymicrosoft) {
> > try {
> > request = new ActiveXObject("Msxml2.XMLHTTP");
> > } catch (othermicrosoft) {
> > try {
> > request = new ActiveXObject("Microsoft.XMLHTTP");
> > } catch (failed) {
> > request = false;
> > }
> > }
> > }
> >
> > if (!request)
> > alert("Error initializing XMLHttpRequest!");
> >
> > function getCustomerInfo(codigo) {
> > var url = "script_py?cod_atendimento=" + escape(codigo);
> > request.open("GET", url, true);
> > request.onreadystatechange = updatePage;
> > request.send(null);
> > }
> >
> > function updatePage() {
> > if (request.readyState == 4) {
> > if (request.status == 200) {
> > var response = request.responseText;
> > alert(response);
> > result = eval(response);
> > for (i in result) {
> > alert(result[i].des_atendimento);
> > }
> > } else
> > alert("status is " + request.status);
> > }
> > }
> >
> > </script>
> >
> > Zénrique.
> >
> > Em 18/12/06, Fernando Paiva<[EMAIL PROTECTED] 
> <mailto:fernandopaiva%40bmonline.com.br>
> > <mailto:fernandopaiva%40bmonline.com.br>> escreveu:
> > > Opa Zénrique.
> > >
> > > Eu ja fiz isso várias vezes, e sem sucesso. Neste exemplo que você
> > > sugeriu, o alert nem é exibido.
> > > Eu estou usando prototype.js, nesse exemplo vc se baseia em 
> prototype ou
> > > mochikit ?
> > >
> > > Obrigado.
> > >
> > > []'s
> > > Fernando Paiva
> > >
> > >
> > > José Henrique escreveu:
> > > >
> > > > Tente essa variação:
> > > >
> > > > function mostraResposta(resposta) {
> > > > result = eval(resposta.responseText);
> > > > for (i in result)
> > > > alert(result[i].nomefazenda);
> > > > }
> > > >
> > > > Zénrique.
> > > >
> > > > Em 15/12/06, pythondeveloper<[EMAIL PROTECTED] 
> <mailto:fernandopaiva%40bmonline.com.br>
> > <mailto:fernandopaiva%40bmonline.com.br>
> > > > <mailto:fernandopaiva%40bmonline.com.br>> escreveu:
> > > > > Zé, as keys do dic{} saum lower e os values saum upper tipo:
> > > > > {'nomefazenda':'MYNHA FAZENDA'}.
> > > > >
> > > > > Ja tentei dessas maneiras.
> > > > > function mostraResposta(resposta){
> > > > > result = eval(resposta.responseText);
> > > > > alert (result); // nao exibe resultado, nem chega a exibir o 
> alert.
> > > > > }
> > > > >
> > > > > function mostraResposta(resposta){
> > > > > result = resposta.responseText;
> > > > > alert (result); // exibe todas as keys com seus values.
> > > > > }
> > > > >
> > > > > function mostraResposta(resposta){
> > > > > result = eval(resposta);
> > > > > alert (result.responseText); // exibe todas as keys com seus 
> values.
> > > > > }
> > > > >
> > > > > function mostraResposta(resposta){
> > > > > result = eval(resposta);
> > > > > resultados = result.responseText;
> > > > > alert (resultados.nomefazenda); // exibe a mensagem "undefined"
> > > > > alert (resultados.cidade); // exibe a mensagem "undefined"
> > > > > }
> > > > >
> > > > > function mostraResposta(resposta){
> > > > > result = resposta.responseText.nomefazenda;
> > > > > alert (result); // exibe a mensagem "undefined".
> > > > > }
> > > > >
> > > > > Alguma sugestão ?
> > > > >
> > > > > []'s
> > > > > Fernando Paiva
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > []'s
> > > > > Fernando Paiva
> > > > >
> > > >
> > > >
> > >
> > >
> > >
> > > Para enviar uma mensagem: zope-pt@yahoogrupos.com.br 
> <mailto:zope-pt%40yahoogrupos.com.br>
> > <mailto:zope-pt%40yahoogrupos.com.br>
> > > Para desistir envie uma mensagem em branco para:
> > [EMAIL PROTECTED] 
> <mailto:zope-pt-unsubscribe%40yahoogrupos.com.br>
> > <mailto:zope-pt-unsubscribe%40yahoogrupos.com.br>
> > > Links do Yahoo! Grupos
> > >
> > >
> > >
> >
> >
>
>  

Reply via email to