2017-12-26 18 views
-6

このスクリプトの出力はブラウザで正常です。私は自分でテストし、正確な結果を得ました。私が知りたいことは、どのようにファイルにレスポンスを書くかです。私はレスポンスを書こうとしましたが、出力の代わりにコードが書かれていました。エラーがあるかもしれませんので、テストされていない - あなたはこれらの線に沿って何かを試みることができるブラウザファイルへの応答を書き込む方法は?

+0

...あなたは、このようにしているとして、あなたがbodyタグをエコーし​​ていないことを示唆している - PHPはjavascriptの前に実行されます – RamRaider

答えて

-1

<?php 

$loc = '<body onload="getLocation()"> 
<p id="demo"></p> 

<script> 
var x = document.getElementById("demo"); 
function getLocation() { 
if (navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(showPosition); 
} else { 
    x.innerHTML = "Geolocation is not supported by this browser."; 
} 
} 
function showPosition(position) { 
x.innerHTML = "Latitude: " + position.coords.latitude + 
"<br>Longitude: " + position.coords.longitude; 
} 
</script>'; 

//File Write 
echo $loc; 
$log = fopen("loc.txt", "a"); 
$info = "$loc\n"; 
fwrite($log, $info); 
fclose($log); 

?> 

出力= GPS座標!私はあなたがコールバックを処理するためにAjaxの機能のいくつかの並べ替えを使用する必要があります

<?php 

    if($_SERVER['REQUEST_METHOD']=='POST' && isset($_POST['lat'], $_POST['lng'])){ 
     ob_clean(); 
     $bytes = file_put_contents('loc.txt',json_encode($_POST) . PHP_EOL, FILE_APPEND); 
     exit($bytes ? 'ok' : 'bad foo'); 
    } 




    $loc = '<body onload="getLocation()"><p id="demo"></p> 
    <script> 

     var x = document.getElementById("demo"); 

     function ajax(url,callback,payload){ 
      var xhr=new XMLHttpRequest(); 
      xhr.onreadystatechange=function(){ 
       if(this.status==200 && this.readyState==4)callback.call(this,this.response) 
      } 
      xhr.open("POST",url,true); 
      xhr.send(payload); 
     } 
     function getLocation() { 
      if (navigator.geolocation) { 
       navigator.geolocation.getCurrentPosition(showPosition); 
      } else { 
       x.innerHTML = "Geolocation is not supported by this browser."; 
      } 
     } 

     function showPosition(position) { 
      x.innerHTML = "Latitude: " + position.coords.latitude + "<br>Longitude: " + position.coords.longitude; 
      ajax.call(this, location.href, function(r){ 
       alert(r) 
      }, 'lat='+position.coords.latitude+'&lng=' + position.coords.longitude); 
     } 
    </script>'; 

    echo $loc; 
?> 
関連する問題