Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.06.2017, 10:31
Аспирант
Отправить личное сообщение для Shuryga Посмотреть профиль Найти все сообщения от Shuryga
 
Регистрация: 24.09.2014
Сообщений: 44

Передача массивов из php в js
Всем доброго времени суток. Подскажите пожалуйста как передать несколько массивов из php файла в js

Один массив я смог передать следующим образом.

К примеру файл cartnetshop.php

$strings = array('blabla', 'bebebe', 'hahaha');
echo json_encode( $strings );


в js

$('.button').keyup(function(){
		$.post('/cartnetshop.php',,
			function(data)
				{
				var result = jQuery.parseJSON( data );
				$('.zag-oform-zakaz').html(result[0]);
				}
			);
	});


Все упрощенно сугуббо для примера.

Задача объявить два массива к примеру

$strings = array('blabla', 'bebebe', 'hahaha');
$numb= array('12', '43', '23');


И получить их в js и бращаться к каждому массиву по имени к примеру

$('.block-one').html(strings[0]);
$('.block-two').html(numb[0]);


Всем заранее огромное спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 27.06.2017, 10:38
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Это не проблемы JS.

json_encode(array($strings, $numb));
Ответить с цитированием
  #3 (permalink)  
Старый 27.06.2017, 10:44
Аспирант
Отправить личное сообщение для Shuryga Посмотреть профиль Найти все сообщения от Shuryga
 
Регистрация: 24.09.2014
Сообщений: 44

И при получении называть массивы и их обрабатывать. к примеру

var result = jQuery.parseJSON( data );
var strings = result[0];
var numb = result[1];

$('.zag-oform-zakaz').html(numb[0]);


Я правильно понял?

Спасибо большое, но есть ли возможность передавать также название массивов?
Это не обязательно но для дальнейшего удобства обработки данных.
Ответить с цитированием
  #4 (permalink)  
Старый 27.06.2017, 10:50
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Shuryga
есть ли возможность передавать также название массивов?
У массивов нет названий ни в РНР, ни в JS. $strings и $numb, это не названия, а переменные под которыми объявлены массивы. Вам чего надо, чтобы вместо var strings = result[0]; получать var strings = result.strings?
Ответить с цитированием
  #5 (permalink)  
Старый 27.06.2017, 11:00
Аспирант
Отправить личное сообщение для Shuryga Посмотреть профиль Найти все сообщения от Shuryga
 
Регистрация: 24.09.2014
Сообщений: 44

Все я вас понял. Натолкнули на мысль.

json_encode(array('strings' => $strings, 'numb' => $numb));


и тогда я получу

var result = jQuery.parseJSON( data );
var strings = result['strings'];

Я ведь правильно все понимаю
Ответить с цитированием
  #6 (permalink)  
Старый 27.06.2017, 11:01
Аспирант
Отправить личное сообщение для Shuryga Посмотреть профиль Найти все сообщения от Shuryga
 
Регистрация: 24.09.2014
Сообщений: 44

У массивов нет названий ни в РНР, ни в JS. $strings и $numb, это не названия, а переменные под которыми объявлены массивы.


Тут вы правы. Я некоректно выразился. Извиняюсь за свою глупость.
Ответить с цитированием
  #7 (permalink)  
Старый 27.06.2017, 11:10
Аспирант
Отправить личное сообщение для Shuryga Посмотреть профиль Найти все сообщения от Shuryga
 
Регистрация: 24.09.2014
Сообщений: 44

К сожалению мой код не работает кончоль выдает ошибку

JSON.parse: unexpected character at line 1 column 1 of the JSON data

Что я делаю не так?
Ответить с цитированием
  #8 (permalink)  
Старый 27.06.2017, 11:26
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Shuryga
var strings = result['strings'];
В JS нет ассоциативных массивов, есть объекты, и в данном случае ключи strings и numb массива РНР будет на клиенте свойствами объекта result. Можно к ним обращаться как result['strings'], но можно проще result.strings.

Сообщение от Shuryga
SON.parse: unexpected character at line 1 column 1 of the JSON data
Некорректный JSON. Это может быть следствием ошибки на сервере (ее вывода в браузер), выводом в браузер чего либо до или после echo json_encode(array('strings' => $strings, 'numb' => $numb)).
Ответить с цитированием
  #9 (permalink)  
Старый 27.06.2017, 12:05
Аспирант
Отправить личное сообщение для Shuryga Посмотреть профиль Найти все сообщения от Shuryga
 
Регистрация: 24.09.2014
Сообщений: 44

Странно. Ведь я нечего не менял в файле кроме того что заменил

json_encode(array($strings, $numb));

на

json_encode(array('strings' => $strings, 'numb' => $numb));
Ответить с цитированием
  #10 (permalink)  
Старый 27.06.2017, 12:07
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Shuryga
Странно.
Ничего странного, открывайте отладчик и смотрите в нем.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив из PHP в JS Spayn Общие вопросы Javascript 2 29.07.2014 11:26
Передать js переменную в php посредством ajax wayzer Элементы интерфейса 17 31.12.2012 14:41
Как передавать параметры из php скрипта в js imissyouso Общие вопросы Javascript 3 01.08.2012 18:24
Передача переменной из js в php, посредством ajax 9xakep Серверные языки и технологии 32 05.05.2012 13:02
Как вывести содержимое PHP файла с помощью JS? pavdin Серверные языки и технологии 6 22.12.2010 14:16