Лучший способ интегрировать результат Javascript с PHP - PullRequest
3 голосов
/ 31 августа 2010

Хорошо.

В основном я использую 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 указанного div в значение ответа определенногозапрос (вот где мои знания JS становятся туманными).

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

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

$var=response from js thing;

То, что я сделал в данный момент, это, по сути, использование php. Я сгенерировал правильное количество div с именами 'response1', 'response2' и т. Д., Которые заполняет JS ... но это не кажется самым логичным способом выполнения действий.

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

Ответы [ 3 ]

1 голос
/ 01 сентября 2010

Для отправки ответа из 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 голосов
/ 31 августа 2010

Да! Я сделал это только на днях:

в вашем файле 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 голосов
/ 31 августа 2010

Я бы рекомендовал взглянуть на эту часть API Карт Google.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...