2010-08-31 3 views
3

Хорошо.Лучший способ интегрировать результат Javascript с PHP

В основном я использую API Карт Google - это Javascript.

Мой сайт работает с PHP по большей части.

Я намерен совершать звонки в API Карт Google, чтобы получить расстояние между различными уже установленными геокодированными точками долготы и широты. Затем я хочу показать их своим пользователям.

Пример.

У меня есть (в PHP):

$home=array(latitude,longitude); 

У меня также есть результат mysql_query из моей базы данных местоположений.

Как таковой я

while($result=mysql_fetch_array($results)){ 

//OUTPUT THE GOOGLE MAPS JAVASCRIPT JARGON WHICH WILL FIND THE DISTANCE 
//BETWEEN MY HOME AND THE DB LOCATIONS 

} 

В примере кода значение просто выводится в DIV, установив внутренний HTML заданного дел до значения отклика определенного запроса (это где мой JS знание становится туманным).

В идеале я хочу получить это значение в php var.

Есть в любом случае делать:

$var=response from js thing; 

То, что я сделал на данный момент, по существу, с помощью PHP Я создал правильное число дивы с «response1» Имена «response2» и т.д., которые в заполняющий JS .. но это не похоже на самый логичный способ делать вещи.

Надеюсь, что имеет смысл. Спасибо

ответ

1

Чтобы отправить ответ из JavaScript в PHP требует AJAX:

Если вы можете использовать JQuery, который в значительной степени стандартный, это очень легко. Это дословно с одного из уроков, которые я написал для моего курса PHPPro:

receiveNumbers.php

<?php 
if (isset($_GET['sentNums'])) 
{ 
    $sentNumbers = filter_input(INPUT_GET, 'sentNums', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH); 
    // Convert to array. 
    $numbers = split(', ', $sentNumbers); 
    // Echo out. 
    echo json_encode($numbers). 
} 

index.php

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
    <head> 
     <title>Graph Sort | PHPExperts.pro</title> 
     <script type="text/javascript" src="js/jquery-1.4.2.min.js"></script> 
     <script type="text/javascript" src="js/jquery.json-2.2.min.js"></script> 
     <script type="text/javascript"> 
var myNumbers = '5, 10, 22, 11'; 
var receivedNumbers; 

<?php 
// Send data from JavaScript -> PHP. 
if (!isset($_GET['myData'])) 
{ 
?> 
    jQuery.getJSON('receiveNumbers.php?sentNums=' + myNumbers, function(jsonReceived) 
    { 
     receivedNumbers = jQuery.parseJSON(jsonReceived); 
     alert(receivedNumbers); // Expected [5,10,22,11] 
    }); 
<?php 
} 
?> 
     </script> 
    </head> 
</html> 
0

Я бы порекомендовал взглянуть на this part API Карт Google.

+0

Спасибо - но, казалось бы, не имеет значения. Ive закодировал скрипт с API, и он работает. Мой вопрос заключается в передаче результатов JS в PHP. –

+0

В этом случае вы можете написать некоторый код AJAX для передачи результатов на сервер или перенаправления на другую (возможно, ту же) страницу с некоторыми параметрами в URL-адресе. – Valera

+0

Возможно, вы пытаетесь сделать что-то вроде: Начните обработку PHP, обработайте JS, верните результат (ы) из JS в PHP, закончите обработку PHP, отрисуйте страницу. Это будет возможно только так: обрабатывать PHP, отправлять страницы пользователю, обрабатывать JS, использовать AJAX для возврата результата на сервер, сменить страницу, чтобы отразить результат вызова AJAX.

Это было бы невозможно по первому пути ... – Valera

0

Да! Я сделал это только на другой день:

в файле PHP сделать это (взято прямо из моего кода):

<?php 
$numbers = array(5, 2, 10, 15); 
/* Model and stuff here */ 
?> 
<html> 
    <head> 
     <script type="text/javascript"> 
// We're going to put all the info we need here, as a JS global variable. 
// If you need even more control, simply fetch it via JQuery from a PHP script that does the following. 
var numbers = <?php echo json_encode($numbers); ?> 

alert(numbers); 
// Expected output: [5,2,10,15] 
alert(numbers[2]); 
// Expected output: 10 
     </script> 
    </head> 
</html> 

Ура!

+0

Я думаю, что ive пропустил точку здесь. Я работаю напрямую с API Карт Google. Никаких других фреймворков и т. Д. Итак, я делаю вызов API и возвращает различные значения. Im пытается получить это значение, возвращенное JS в php var. Я наоборот. Я верю. Спасибо –

Смежные вопросы