Назначение переменной JavaScript с помощью php - PullRequest
0 голосов
/ 04 ноября 2011

Я пытаюсь загрузить карту с помощью API Google Map. У меня есть сценарий, который центрирует его на данном языке, указанном в: var address = "my address";

Сессия содержит часть пути к текстовому файлу с адресом в нем.

Это немного грязно, но это служит цели: -)

Вот JavaScript с php:

                var geocoder = new google.maps.Geocoder();
                <?php
                    $center_path = "images\blog\\".$_SESSION['trip']."\\Center.txt";
                    echo "var address = \"";
                    include($center_path);
                    echo "\";";
                ?>

                geocoder.geocode( { 'address': address}, function(results, status) {

                if (status == google.maps.GeocoderStatus.OK) {
                    map.setCenter(results[0].geometry.location);
                    } 
                }); 

Это выводит

var address = "мой адрес";

в html, который будет означать, что он должен работать, только это не так.

Кто-нибудь знает, почему адрес переменной не передается должным образом?

Ответы [ 3 ]

0 голосов
/ 04 ноября 2011

Вместо использования include, чтобы получить файл, попробуйте использовать file_get_contents. Оттуда вы должны правильно санировать файл и запустить на нем отделку. Во время тестирования я заметил, что даже однострочный файл содержит символ конца строки, что может вызвать смешные вещи в JavaScript.

Как уже говорили другие, вы должны сделать некоторую должную старательность для себя, повторить все переменные и убедиться, что они содержат информацию, которую вы для них предназначали.

Суть в том, что сессии - непостоянные существа. Вы должны убедиться, что ваша переменная сеанса используется точно так, как следует, что переменная $ center_path правильно размещена, и все в порядке, как и должно быть.

Кроме этого, я не уверен, что еще мы могли бы сделать там.

0 голосов
/ 05 ноября 2011

Вы должны использовать file_get_contents для загрузки файла в переменную вместо include, который используется для выполнения кода в контексте, в котором он вызывается.

0 голосов
/ 04 ноября 2011

Вы используете относительный путь к файлу.Убедитесь, что файл основан на корне.Для отладки используйте echo $ center_path и убедитесь, что отображаемый путь указывает на файл.Если ничего не помогает, укажите абсолютный путь.

...