[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Найти нужное значение
Страницы: 1, 2
McLotos
Добрый день. И так имеется массив
array[1]['lname'] = 'Иванов';
array[1]['fname'] = 'Иван';
array[1]['mname'] = 'Иванович';
array[1]['bdate'] = '1.1.1980';
array[2]['lname'] = 'Иванов';
array[2]['fname'] = 'Петр';
array[2]['mname'] = 'Иванович';
array[2]['bdate'] = '10.2.1990';

но он в php
как сделать чтобы JS адекватно воспринимал этот массив? на сколько я помню у JS нет многомерных массивов, там нужно как-то создавать массивы внутри массива?
т.е. что-то типа

array = new Array(); array[0]= new Array(); array[1] = new Array()
и т.д.
но тогда я не понимаю как мне найти правильное пересечение индексов?
Ну вот как мне получить все данные Петра?

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
Игорь_Vasinsky
Цитата
на сколько я помню у JS нет многомерных массивов

Цитата
там нужно как-то создавать массивы внутри массива?

2 строчки взорвавшие мозг))

у JS ваще нет массивов. :D

Цитата
Ну вот как мне получить все данные Петра?


console.log(array[2]);


или

for(k in array[2]){
console.log(key, ':', array[2][key])
}


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
sergeiss
Цитата (Игорь_Vasinsky @ 17.04.2014 - 11:33)
у JS ваще нет массивов

Суровое утверждение, никак не соответствующее действительности.

Другой вопрос, что ТС надо в данном случае работать с объектами, а не с массивами. Хотя в JS работа с массивами и с объектами выглядит очень сходно.

Цитата (SergeySA @ 17.04.2014 - 11:26)
как сделать чтобы JS адекватно воспринимал этот массив?

Тебе надо из ПХП передать эти данные в JS?

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
McLotos
Цитата
Тебе надо из ПХП передать эти данные в JS?

так точно
но пока я тестирую это без серверной части. я сначала хочу попробовать поработать с многомерными массивами в JS (точнее списками, как любят говорить JS'ники и питонисты =))))))

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
sergeiss
Чтоб передать из ПХП в JS, без аякса... Вот такой вариант самый простой, на этапе формирования страницы на сервере пишем:
<script>
var data = JSON.parse( '<?= json_encode( $php_array_data ) ?>' );

/* а тут уже делаем с этими данными всё, что хотим */
</script>


_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
killer8080
sergeiss
А JSON.parse то зачем? smile.gif
sergeiss
Цитата (killer8080 @ 17.04.2014 - 12:31)
А JSON.parse то зачем?

Для универсальности.
Чтобы ТС мог:
1. Использовать этот код для любого источника данных, как для явно заданных массивов ПХП, так и для неопределенных на момент разработки скрипта (в т.ч. с неопределенной вложенностью).
2. Адаптировать код под использование аякса, когда "дозреет" до этого. Переделок будет минимум.

А так да, если строго 2-мерный массив в ПХП, то можно его "в лоб" записать в JS. Но получим не гибкую структуру.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
killer8080
Цитата (sergeiss @ 17.04.2014 - 13:06)
так да, если строго 2-мерный массив в ПХП, то можно его "в лоб" записать в JS. Но получим не гибкую структуру.

глупости, JSON - это JavaScript Object Notation, json_encode выдаёт полноценную синтаксическую JS конструкцию. Нет никакой надобности её заворачивать в строку, чтоб потом обратно парсить в объект. Вне зависимости от структуры данных.
sergeiss
Где ты тут видишь глупости??? Если использовать аякс, то JSON.parse() будет нужен обязательно. Я же и об этом тоже писал.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
killer8080
Цитата (sergeiss @ 17.04.2014 - 13:32)
Где ты тут видишь глупости???

конкретно в такой конструкции
Цитата (sergeiss @ 17.04.2014 - 11:49)
var data = JSON.parse( '<?= json_encode( $php_array_data ) ?>' );

когда нужно просто
var data = <?= json_encode( $php_array_data ) ?>;

Цитата (sergeiss @ 17.04.2014 - 13:32)
Если использовать аякс, то JSON.parse() будет нужен обязательно.

когда будет аякс, это будет аякс, этот код к ниму никаким боком не относится.
sergeiss
Цитата (killer8080 @ 17.04.2014 - 13:37)
когда будет аякс, это будет аякс, этот код к ниму никаким боком не относится.

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

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
killer8080
Цитата (sergeiss @ 17.04.2014 - 13:42)
Когда будет аякс, то этот код можно будет полностью переиспользовать в обработчике.

не факт, может он применит jQuery.getJSON(), нельзя предвидеть всего что будет потом, да и не нужно. Согласись что конкретно в том примере, что ты привёл, парсинг смысла не имеет.
McLotos
В общем наляпал вот такую конструкцию
function Check()
{var form = document.getElementsByTagName('input')
var lname = form[0];
var fname = form[1];
var mname = form[2];
var bdate = form[3];
if (form[0].value.length>0)
{FindResult(form[0].value,'lname');}
if(form[1].value.length>0)
{FindResult(form[1].value,'fname');}
if(form[2].value.length>0)
{FindResult(form[2].value,'mname');}
}

function FindResult(data,pos)
{ var dshow = document.getElementsByTagName('div')[0];
var array = new Array();
array[1] = new Array();
array[2] = new Array();
array[1]['lname'] = 'Иванов';
array[1]['fname'] = 'Иван';
array[1]['mname'] = 'Иванович';
array[1]['bdate'] = '01.01.1980';
array[2]['lname'] = 'Иванов';
array[2]['fname'] = 'Петр';
array[2]['mname'] = 'Иванович';
array[2]['bdate'] = '10.02.1990';
for(i=1;i<array.length;++i)
{dshow.innerHTML=array[i]['lname']+' '+array[i]['fname']+' '+array[i]['mname']+' '+array[i]['bdate']+"<br>";}
}

И если я начинаю вводить данные в любое из трёх полей, то скрипт выводит мне последний элемент массива. И такое происходит даже если вводится абсолютная абракадабра.
что-то я совсем запутался. ненавижу писать клиентскую часть!
сравнение забыл добавить. но всё-равно этот код какой-то неадекватный

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.