Задать вопрос

Как осуществить перенос из PHP-файла переменной в JS-файл?

Проблема якобы решается гуглом, но вот почему-то я ее решить не могу.

У меня есть 2 файла, один отдает данные с сервера(php), другой (js) в котором я должен использовать полученные данные. Ну допустим, мы получаем что-то вот такое (это в качестве примера):
<?php

$data = array(
    array(
        'title' => 'Arduino #1',
        'id' => 1,
        'image' => 'http://www.casemods.ru/templates/images/texts/3_4119479.jpg',
        'top' => 200,
        'left' => 300,
        'width' => 800,
        'height' => 760,
        'points' => array(
            'id' => 1,
            'objectId' => 1,
            'top' => 300,
            'left' => 500,
            'tip' => 500,
        ),
    ),
    array(
        'title' => 'Arduino #2',
        'id' => 2,
        'image' => 'img/objects/arduino.png',
        'top' => 200,
        'left' => 300,
        'width' => 800,
        'height' => 760,
        'points' => array(
            'id' => 1,
            'objectId' => 2,
            'top' => 300,
            'left' => 500,
            'tip' => 500,
        ),
    )
);

echo json_encode($data);

Вот как мне получить эту переменную $data, в js файле?
  • Вопрос задан
  • 3215 просмотров
Подписаться 5 Оценить 4 комментария
Решения вопроса 1
Valoo
@Valoo
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script>
	$(document).ready(function(){
		$.ajax({
			url: 'http://test_php_json_page/',
			dataType: 'json'
		}).done(function(data){
			$.each(data, function(key, value){
				console.log(key, ' :', value);
			})
		}).fail(function(){
			console.log('error');
		});
	});
</script>
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
arutyunov
@arutyunov
Mooza.ru — Делаем сайты
<?php
$data = 'some_var_for_js';
?>

<html>
<head>
<script type="text/javascript">
var data = <?php echo $data; ?>;
</script>
</head>
...
Ответ написан
morozovdenis
@morozovdenis
<?php

$data = array(
    array(
        'title' => 'Arduino #1',
        'id' => 1,
        'image' => 'http://www.casemods.ru/templates/images/texts/3_4119479.jpg',
        'top' => 200,
        'left' => 300,
        'width' => 800,
        'height' => 760,
        'points' => array(
            'id' => 1,
            'objectId' => 1,
            'top' => 300,
            'left' => 500,
            'tip' => 500,
        ),
    ),
    array(
        'title' => 'Arduino #2',
        'id' => 2,
        'image' => 'img/objects/arduino.png',
        'top' => 200,
        'left' => 300,
        'width' => 800,
        'height' => 760,
        'points' => array(
            'id' => 1,
            'objectId' => 2,
            'top' => 300,
            'left' => 500,
            'tip' => 500,
        ),
    )
);
?>
<script type="text/javascript">
var data = <?php echo json_encode($data); ?>;
console.log(data[0]["title"]);
</script>
Ответ написан
Комментировать
nazarpc
@nazarpc
Open Source enthusiast
Есть замечательная функция в PHP, называется json_encode()
Ответ написан
@young8junkie
Сервер(php) не может что-то отсылать, может только отвечать. Сделайте на странице Ajax запрос к серверу и ответом отдайте с помощью json данные с переменной. Если такой ответ вас не устраивает, то нужно улучшать знания по веб-разработке.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы