Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как передать массива из объекта php в js (https://javascript.ru/forum/dom-window/64876-kak-peredat-massiva-iz-obekta-php-v-js.html)

suxxoi 11.09.2016 12:38

Как передать массива из объекта php в js
 
На PHP есть объект $db в нем есть массив social, в массиве разные данные на основе объекта
[db] => DB Object
[soсial] => Array
(
[linkedin] => http://www.linkedin.com/
[facebook] => https://www.facebook.com
[google] => https://plus.google.com/
)

Как из этого массива добавить,в массив js только ссылки чтобы было
arr = ["http://www.linkedin.com/","https://www.facebook.com", " https://plus.google.com/"]

laimas 11.09.2016 14:04

<script>
var arr = <?=json_encode(array_values(current($array_name['db'])))?>
</script>

suxxoi 11.09.2016 16:39

Ничего не выводит в консоли тоже нет ничего
Вот кусок кода может так понятнее будет
$social_links = array( 'linkedin', 'facebook', 'google');
foreach( $social_links as $social ) {
echo "<tr><td>".$d->social[ $social ]."</td></tr>";
}
В цикле все корректно находится и выводится
print_r($d->social)
Array
(
[linkedin] => http://www.linkedin.com/company/10667
[facebook] => https://www.facebook.com/
[twitter] => https://twitter.com/facebook
)
echo json_encode($d->social);
{"linkedin":"http:\/\/www.linkedin.com\/company\/10667","facebook":"https:\/\/www.facebook.com\/","twitter":"https:\/\/twitter.com\/facebook"}

Как эти данные в массив js занести не могу понять, я только начинаю знакомится с js и поэтому четкого понимания нет

laimas 11.09.2016 17:02

Значит структура данных совсем иная, ибо в том как было показано $d не является объектом. Ну это если объявить например так:

$a = ['db' => (object)[
    'soсial' => [
        'linkedin' => 'http://www.linkedin.com/',
        'facebook' => 'https://www.facebook.com',
        'google' => 'https://plus.google.com/'
        ]
    ]
];

var_dump($a);

//объектом будет social, а показанный код вернет требуемое

echo json_encode(array_values(current($a['db'])));

//а в вашей структуре нужно так

echo json_encode(array_values($d->social));

suxxoi 11.09.2016 17:06

Большое спасибо, действительно помогло

var link = <?=json_encode(array_values($d->social))?>;


Часовой пояс GMT +3, время: 08:43.