Rafael da Silveira 1 Denunciar post Postado Junho 23, 2017 Galera, é o seguinte! tenho um código que faz uma requisição ajax em uma pagina php , que faz um consulta e retorna os dados em json: Com o resultado, gostaria de criar uma listagem com o resultado. como percorrer o resultado via javascript? Se possivel, gostaria que essa função me retornasse o json...mais não tive sucesso! Código da função <html xmlns="http://www.w3.org/1999/xhtml"> <title>Get Data </title> </head> <body> </body> </html> <script> function getData(url,query){ var ajax = null; if(window.XMLHttpRequest){ ajax = new XMLHttpRequest(); }else if (window.ActiveXObject){ try{ ajax = new ActiveXObject("Msxml2.XMLHTTP"); }catch(e){ ajax = new ActiveXObject("Microsoft.XMLHTTP"); } } ajax.onreadystatechange = function(){ if(ajax.status >= 200 && ajax.status <= 400){ resultadoGetData = ajax.responseText; } } if(query != undefined){ url = url + "?query=" + query; }; ajax.open('POST',url,true); ajax.send(); //return ajax.onreadystatechange(); return resultadoGetData; } var resultado = getData('motor-get-data.php','SELECT * FROM tbl_caixa'); </script> Código da pagina php header('Cache-Control: no-cache, must-revalidate'); header('Content-Type: application/json; charset=utf-8'); $database = '@rdmoveisplanejados'; $query = $_GET['query']; try{ $conn = new PDO("mysql:host=localhost;dbname=$database", "root", ""); $sql = $conn->prepare($query); $sql -> execute(); $cont = $sql->rowCount(); $row = $sql->fetchAll(PDO::FETCH_OBJ); echo json_encode($row); }catch(PDOException $e){ echo "Falha:001<br>"; echo "Erro:" . $e->getMessage(); exit; } Agradeço Compartilhar este post Link para o post Compartilhar em outros sites
Pita 53 Denunciar post Postado Junho 26, 2017 Na verdade a chamada AJAX ela é assincrona e quando termina a execução da função, no momento do "return resultadoGetData" a requisição AJAX ainda não foi concluída, ou seja, ainda não foi atribuído o retorno na variável. Dá uma olhada nesse link https://developer.mozilla.org/pt-BR/docs/Web/API/XMLHttpRequest/Requisicoes_sincronas_e_assincronas Outra opção seria utilizar o jQuery, ele possui recursos para facilitar esta requisição Compartilhar este post Link para o post Compartilhar em outros sites