Как осуществить перенос из PHP-файла переменной в JS-файл?
356
17.03, в 01:35
Проблема якобы решается гуглом, но вот почему-то я ее решить не могу.

У меня есть 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 файле?
16.03, в 23:55
А скажи пожалуйста... ведь js файл - это на самом деле совершенно отдельный файл, который пишется руками, никак не связан с php и загружается клиентом как положено загружаться скрипту ?
Если я прав, то вопрос поставлен неверно - тебе нужно искать как из JavaScript обратиться за данными к php скрипту на сервер.
Посмотри в сторону jQuery.get() и jQuery.getjson(), в качестве url задай адрес твоего php файла.
16.03, в 23:58
скрипт либо выводит это дело в каком-то виде на самой странице, либо скрипт запрашивается из js аяксом. В любом случае мы его кодируем в json и берем js-скриптом. О чем ниже уже несоклько раз сказали.
17.03, в 00:14
@Next_Alex Да да да вы меня поняли, файл абсолютно другой и никак не формируется с помощью php. Oт php мне нужны только данные.
17.03, в 00:50
Раз я прав, то почитай для начала вот это ну а потом уже про jQuery и все у тебя получится.
Если что - пиши в мыло.
Сортировать по:
Ответы (5)
3
<?php
$data = 'some_var_for_js';
?>

<html>
<head>
<script type="text/javascript">
var data = <?php echo $data; ?>;
</script>
</head>
...
<?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>
Есть замечательная функция в PHP, называется json_encode()
Сервер(php) не может что-то отсылать, может только отвечать. Сделайте на странице Ajax запрос к серверу и ответом отдайте с помощью json данные с переменной. Если такой ответ вас не устраивает, то нужно улучшать знания по веб-разработке.
Написать ответ

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

Войти через TM ID