Variável Javascript no PHP

Usando a API de Geolocalização HTML5, acabei com algumas variables ​​no Javascript que eu preciso passar para o PHP para continuar. Meu código está abaixo, como poderia ser alcançado? Eu tentei coisas ao longo das linhas de $variable = document.write(variable);;

      test    //Check if browser supports W3C Geolocation API if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(successFunction, errorFunction); } else { document.write("Geolocation is required for this page."); } function successFunction(position) { var lat = position.coords.latitude; var lng = position.coords.longitude; } function errorFunction(position) { document.write("Error"); }  <?php error_reporting(E_ALL); ini_set('display_errors', '1'); $lat = //TAKE FROM JAVASCRIPT $lng = //TAKE FROM JAVASCRIPT $url = "http://api.geonames.org/findNearbyPlaceNameJSON?lat='.$lat.'&lng='.$lng.'&username=demo"; $json = file_get_contents($url); $data = json_decode($json, true); $geonames = $data['geonames'][0]; $town = $geonames['name']; echo "Displaying results near ".$town.". Not in ".$town."?"; ?>   

EDIT: OK, fiz uma lição de casa e agora eu sei que estou olhando um AJAX XMLHttpRequest para escaping dos dois. No entanto, sua syntax ligeiramente jogou-me (para não mencionar os problemas do cross-browser). Alguém pode me dar um impulso na direção certa com este?

Você está misturando scripts do lado do servidor juntamente com scripts do lado do navegador

$ variável desaparece no lado do navegador e, portanto, sempre guardará “document.write (variable);” qualquer que seja o roteiro dentro dele escrito.

No entanto, você pode usar o AJAX para enviar os dados de volta para o php e processá-lo lá.

Considerando que o Javascript é interpretado pelo cliente somente após o servidor interpretar o PHP, isso é impossível.

Sua única maneira de passar os dados de Javascript para PHP e, em seguida, mostrar os resultados do PHP seria enviar os dados recuperados pelo Javascript para o PHP via AJAX / XHR e, em seguida, usar o Javascript para exibir a resposta do script PHP.

Para passar as variables ​​javascript para o PHP, você não terá escolha senão solicitar uma nova página, pois o PHP pára de executar quando uma página é enviada para o navegador.

Você pode passar para ele via GET, POST ou COOKIE. GET é a maneira mais fácil: http://domain.com/page?town=XYZ . Tudo o que você precisa fazer depois é armazenar sua cidade em uma session do PHP e redirect para a página desejada usando o header (‘Localização: http://domain.com/page ‘)

Usar um pedido do Ajax permitirá que você faça isso sem recorrer a sessões e recarregas de página.