soulindo 0 Denunciar post Postado Fevereiro 12, 2015 Boas, Eu tou a tentar criar um webservice que faz uma chamada a uma api via ajax e me devolve o array ja tratado mas ele nao me esta a passar a variável para o lado do cliente o que poderá estar mal alguém me pode ajudar? Server <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.js" type="text/javascript"> </script> <script> var line_points = new Array; var line_points2 = new Array; function ponts (lat1,long1,lat2,long2) { $.ajax({ url : "https://graphhopper.com/api/1/route?point.....", type : "GET", async: true, dataType : "json", success : function(keydata) { // Create array of lat,lon points var arr = new Array; var line_points = new Array; var data = keydata.paths[0].points.coordinates; for (var prop in data) { arr.push(data[prop]); } for (var alt in arr) { var arr2 = new Array; arr2.push(arr[alt][1]); arr2.push(arr[alt][0]); line_points.push(arr2); } console.log("Ajax"); console.log(line_points); line_points2=line_points; }}); return line_points2; } </script> <?php $server = new SoapServer(null, array('uri' => "http://localhost:8888/soap/")); function getpoints($lat1 , $long1, $lat2, $long2) { echo '<script type="text/javascript">ponts('.$lat1.','.$long1.','.$lat2.','.$long2.'); </script>'; $x = "<script>document.write(line_points2)</script>"; return $x ; } $server->addFunction("getpoints"); if ($_SERVER["REQUEST_METHOD"]== "POST") { $server->handle(); } else { $functions = $server->getFunctions(); foreach ($functions as $func) { print $func. "<br>"; } } ?> Cliente <?php $client = new SoapClient(null, array( 'location' => 'http://localhost:8888/soap3/server.php', 'uri' => 'http://localhost:8888/soap/', 'trace' => 1)); $result = $client->getpoints("41.695242","-8.84232","41.69489","-8.833072"); if (is_soap_fault($result)){ echo trigger_error("SOAP Fault: (faultcode: {$result->faultcode}, faultstring: {$result->faulstring})", E_ERROR); } else{ print_r($result); } ?> Obrigado . Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 13, 2015 O seu servidor WS deve processar tudo pelo PHP, nada de JS. JS é executado no navegador. E como a requisição SOAP não envolve navegador, o JS não será processado Caso queira usar JSON, existem as funções json_encode e json_decode. Elas trabalham bem com arrays, se é esse o objetivo do seu WS Compartilhar este post Link para o post Compartilhar em outros sites
soulindo 0 Denunciar post Postado Fevereiro 16, 2015 ja consegui o problema que me esta a matar a cabeça agora e que nao consigo passar as variaveis do javascript para o php sabes o que posso tar a fazer mal ? lat1 = ponto.lat; long1 = ponto.lng; alert(lat1 + ' ,' + long1); i = i + 1; } else { lat2 = ponto.lat; long2 = ponto.lng; alert(lat2 + ' ,' + long2); <?php $lat1 ="<script>" . 'document.write(lat1);' ."</script>"; $long1 ="<script>" . 'document.write(long1);' ."</script>"; $lat2 ="<script>" . 'document.write(lat2);' ."</script>"; $long2 ="<script>" . 'document.write(long2);' ."</script>"; ?> Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 16, 2015 Você está misturando as coisas: PHP é processado no servidor. Javascript é processado no navegador do cliente. O que você está fazendo é a mesma coisa que exibir o JS direto, sem criar essas variáveis PHP. Se você quer que o PHP receba valores dinâmicos do JS, precisará usar Ajax ou fazer requisições novas para o PHP. Leia mais sobre linguagens server-side e client-side, para entender melhor Compartilhar este post Link para o post Compartilhar em outros sites