vrodrigues Posted June 8, 2012 at 02:49 PM Report Share #461436 Posted June 8, 2012 at 02:49 PM Boas tardes! Tenho aqui uma duvida que se calhar algum de vos pode me dar umas luzes! então é assim eu tou a construir um array num ficheiro php , com a particularidade de este estar a ser feito em JSON: $json= Array( 'titulo'=>utf8_decode($array['titulo']), 'ID'=>$array['idofertas']); $response=json_encode($json); E no que pretendia fazer era receber este array num ficheiro javascript, mas ele não me esta a passar bem. O código javascript que tenho até ao momento é este: var response = this.responseText; var json= JSON.parse(response); var array_resp=json; alert(array_resp.titulo) o intuito é aparecer no ecra no javascript o conteudo "titulo" alguem tem algumas luzes sobre isto? Link to comment Share on other sites More sharing options...
brunoais Posted June 8, 2012 at 02:52 PM Report Share #461440 Posted June 8, 2012 at 02:52 PM Tens erros de sintaxe? O código que tens parece correto. 1 Report "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%. Link to comment Share on other sites More sharing options...
vrodrigues Posted June 8, 2012 at 02:53 PM Author Report Share #461441 Posted June 8, 2012 at 02:53 PM dá um erro sim ! "Uncaught SyntaxError: Unexpected token {" Link to comment Share on other sites More sharing options...
brunoais Posted June 8, 2012 at 02:56 PM Report Share #461443 Posted June 8, 2012 at 02:56 PM E o código que inclui aonde está o erro de sintaxe....... Se queres que te ajudemos tens que o mostrar. "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%. Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted June 8, 2012 at 02:56 PM Report Share #461444 Posted June 8, 2012 at 02:56 PM para determinar se estás a receber a resposta correctamente faz output do this.responseText para um elemento (div talvez) - caso esteja correcto, o erro deverá encontrar fora do código apresentado porque parece bem - caso esteja errado, o erro pode estar no envio ou na recepção, novamente código que não se encontra aqui IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
vrodrigues Posted June 8, 2012 at 02:59 PM Author Report Share #461446 Posted June 8, 2012 at 02:59 PM (edited) o código é o de php que já tinha colocado em cima, pk por exemplo quando faço um echo da variavel $response o echo é desta forma: {"titulo":"Comercial (M\/F)","ID":"462"} Mas eu recebo os dados vindo do php desta forma: var xhr = Ti.Network.createHTTPClient(); xhr.open('GET', encodedURI); xhr.send(); xhr.onload = function() { var addresposta = []; var response = this.responseText; alert(response); var json= JSON.parse(response); var array_resp=json; alert(array_resp.titulo) ahhh o output do this.responseText vem assim {"titulo":"Comercial (M\/F)","ID":"462"}; por isso deduzo eu que esteja a passar correctamente. Edited June 8, 2012 at 03:04 PM by vrodrigues Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted June 8, 2012 at 03:11 PM Report Share #461452 Posted June 8, 2012 at 03:11 PM desculpa lá mas isso funciona a mim se a variável response tem o texto que dizes então irá aparecer uma janela com o texto 'Comercial (M/F)' porque acabei de testar e deu correctamente ou estas a omitir alguma coisa ou o erro será outra coisa qualquer !!! IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
brunoais Posted June 8, 2012 at 03:15 PM Report Share #461453 Posted June 8, 2012 at 03:15 PM (edited) Vamos por partes... var xhr = Ti.Network.createHTTPClient(); O que é o Ti? xhr.open('GET', encodedURI); xhr.send(); xhr.onload = function() { onload... Este método é do q? var addresposta = []; var response = this.responseText; alert(response); ok... var json= JSON.parse(response); var array_resp=json; // Código inútil para que é isto? Precisas de um alias? alert(array_resp.titulo) O addresposta é para o quê? De todo o código que meteste aqui, nenhum é a causa para o erro de sintaxe que tens. Edited June 8, 2012 at 03:16 PM by brunoais "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%. Link to comment Share on other sites More sharing options...
vrodrigues Posted June 8, 2012 at 03:29 PM Author Report Share #461462 Posted June 8, 2012 at 03:29 PM TI -> usado no titanium ! var xhr = Ti.Network.createHTTPClient(); xhr.open('GET', encodedURI); xhr.send(); -> metodo do titanium para fazer a conexão e envio de parametros para um ficheiro num servidor. add resposta e var array_resp=json; -> estão a mais esquecime de apagar, mas não interferem com o resto do código. desculpa lá mas isso funciona a mim se a variável response tem o texto que dizes então irá aparecer uma janela com o texto 'Comercial (M/F)' porque acabei de testar e deu correctamente ou estas a omitir alguma coisa ou o erro será outra coisa qualquer !!! O problema é que estas respostas são divididas por caixas de texto, e o erro que me dá é o que está em cima :s Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted June 8, 2012 at 03:36 PM Report Share #461464 Posted June 8, 2012 at 03:36 PM o erro é porque andas a abrir/fechar mal as chavetas em javascript o browser ao detectar o erro deixa de executar o javascript e é por isso que não te aparece nada por isso (e como disse no ponto de omitir) ou fazes post de todo o código javascript que criaste ou é impossível detectar exactamente onde se encontra o erro. IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
vrodrigues Posted June 8, 2012 at 03:42 PM Author Report Share #461465 Posted June 8, 2012 at 03:42 PM (edited) o código JS e este: var url = 'XXX/teste.php'; var params = '?params=' + inputpesquisa.value; var lat = '&lat=' + latitude; var log = '&log=' + longitude; var raio = '&raio=' + kmpicked; var cidade = '&cidade=' + inputcidade.value; var estado = '&estado=' + estado; var encodedURI = encodeURI(url + params + lat + log + raio + cidade); //alert(encodedURI); var xhr = Ti.Network.createHTTPClient(); xhr.open('GET', encodedURI); xhr.send(); xhr.onload = function() { var addresposta = []; var response = this.responseText; alert(response); var array_resp = response; if (response != null) { alert(array_resp); for (var i = 0; i <= array_resp.row; i++) { addresposta.push(Ti.UI.createTableViewRow({ text : ' ' + array_resp.titulo, className : 'className', height : '70 px', backgroundImage : 'tabelrow_bkg.png', })); respostas.setData(addresposta); win1.add(respostas); } } else { var toastsempropostas = Ti.UI.createNotification({ duration : 2000, message : 'Sem propostas para a pesquisa', }); toastsempropostas.show(); } }; xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xhr.onerror = function(e) { alert('Transmission error: ' + e.error);} Edited June 8, 2012 at 03:42 PM by vrodrigues Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted June 8, 2012 at 03:53 PM Report Share #461467 Posted June 8, 2012 at 03:53 PM como o código que apresentaste aqui parece estar correcto no que toca a abertura e fecho de chavetas, continuo a dizer que falta aqui qualquer coisa, a razão de dizer isto é: var url = 'XXX/teste.php'; var params = '?params=' + inputpesquisa.value; // inputpesquisa aparece do nada var lat = '&lat=' + latitude; // latitude aparece do nada var log = '&log=' + longitude; // longitude aparece do nada var raio = '&raio=' + kmpicked; // kmpicked aparece do nada var cidade = '&cidade=' + inputcidade.value; // inputcidade aparece do nada var estado = '&estado=' + estado; // estado aparece do nada como estás constantemente a mandar para trás, ou dizes directamente em que linha dá o erro ou terás de esperar por alguém com mais paciência ... IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
vrodrigues Posted June 8, 2012 at 04:00 PM Author Report Share #461468 Posted June 8, 2012 at 04:00 PM como o código que apresentaste aqui parece estar correcto no que toca a abertura e fecho de chavetas, continuo a dizer que falta aqui qualquer coisa, a razão de dizer isto é: var url = 'XXX/teste.php'; var params = '?params=' + inputpesquisa.value; // inputpesquisa aparece do nada var lat = '&lat=' + latitude; // latitude aparece do nada var log = '&log=' + longitude; // longitude aparece do nada var raio = '&raio=' + kmpicked; // kmpicked aparece do nada var cidade = '&cidade=' + inputcidade.value; // inputcidade aparece do nada var estado = '&estado=' + estado; // estado aparece do nada como estás constantemente a mandar para trás, ou dizes directamente em que linha dá o erro ou terás de esperar por alguém com mais paciência ... esses valores vem de fora, e esses valores são enviados perfeitamente , não têm problema 😄 o problema esta a partir daqui var response = this.responseText; alert(response); var array_resp = response; porque (se tiver enganada diz) era suposto quando eu recebo os valores poder utilizar desta forma array_resp.titulo, e não consigo , o problema do titanium é que com este tipo de erros ele não diz qual a linha que dá erro , por isso não te consigo explicar qual é a linha ao certo. Não é por mal que não a digo é porque não sei. Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted June 8, 2012 at 04:03 PM Report Share #461471 Posted June 8, 2012 at 04:03 PM nesse caso, só te poderei ajudar se me forneceres um url de acesso ao site que encontras a desenvolver sem ver o que está a acontecer não conseguirei fazer nada IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
vrodrigues Posted June 8, 2012 at 04:04 PM Author Report Share #461472 Posted June 8, 2012 at 04:04 PM tipo eu tou a usar o titanium, sitema para android! por isso não te consigo dar um site para experimentares :S Link to comment Share on other sites More sharing options...
mjamado Posted June 8, 2012 at 04:07 PM Report Share #461473 Posted June 8, 2012 at 04:07 PM (edited) HappyHippyHippo, isto não é um site, é uma aplicação mobile. vrodrigues, eu acho que tens um bocado de sorte disso fazer alguma coisa: só defines o callback depois de enviar o pedido? Troca lá a ordem dessas coisas. De qualquer forma, não me parece que o erro seja daí. Ainda chegas a ver o alert da resposta? Edit: no código que colocaste por último não fazes o parse ao JSON... Edited June 8, 2012 at 04:09 PM by mjamado "Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web. Link to comment Share on other sites More sharing options...
vrodrigues Posted June 8, 2012 at 04:11 PM Author Report Share #461474 Posted June 8, 2012 at 04:11 PM (edited) HappyHippyHippo, isto não é um site, é uma aplicação mobile. vrodrigues, eu acho que tens um bocado de sorte disso fazer alguma coisa: só defines o callback depois de enviar o pedido? Troca lá a ordem dessas coisas. De qualquer forma, não me parece que o erro seja daí. Ainda chegas a ver o alert da resposta? Edit: no código que colocaste por último não fazes o parse ao JSON... Sim de outra forma não me funciona!(mal do titanium) Mas agora ja tem o parse e dá-me o erro "Uncaught SyntaxError: Unexpected token { " sim se fizer um alert á resposta eu vejo a resposta direita! Edited June 8, 2012 at 04:14 PM by vrodrigues Link to comment Share on other sites More sharing options...
mjamado Posted June 8, 2012 at 04:15 PM Report Share #461475 Posted June 8, 2012 at 04:15 PM O onload tem que estar antes do send e do open. Troca isso. Se não funcionar, tens outros problemas. Depois de fazeres isso, diz-me: vês o alert do response (antes do parse do JSON)? "Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web. Link to comment Share on other sites More sharing options...
vrodrigues Posted June 8, 2012 at 04:20 PM Author Report Share #461476 Posted June 8, 2012 at 04:20 PM JA troquei e ta ok! sim vejo o alert antes do parse. Link to comment Share on other sites More sharing options...
mjamado Posted June 8, 2012 at 04:27 PM Report Share #461477 Posted June 8, 2012 at 04:27 PM Tens que ir dizendo mais coisas e experimentando outras, não podes estar à espera que estejamos sempre a fazer as mesmas perguntas. Continua a dar erro? Qual? O que é que estava no alert? E por aí fora... "Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now