[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: JavaScript + PHP
SunSet
Подскажите, пожалуста, как сделать выборку из базы для javascript, чтоб формировался массив в точно наком виде со знаками:

'Year1':{'month1':'Январь','month2':'Февраль'},
'Year2':{'month8':'Август','month9':'Сентябрь'}, ... и т.д.


Жирным выделены вытягиваемые данные из базы.
Нужен именно не сам запрос, сколько построение через echo или printf. huh.gif
И будет ли эта вся конструкция работать в теле JS ?



Спустя 1 час, 17 минут, 52 секунды (12.08.2009 - 16:47) FatCat написал(а):
И где в приведенной цитате массив?
И из какого пальца будем высасывать имена полей БД, из которых тянутся данные запросом?

Спустя 51 минута, 41 секунда (12.08.2009 - 17:39) kirik написал(а):
Как правильно подметили: это не массив, это объект.
/* Хотя массив тоже является объектом.. Кароч не суть smile.gif */

Чтобы в php вывести массив сериализованный в JSON строчку юзай json_encode(), а чтобы JS понял эту строчку не как строку а как объект, юзай или декодеры на JS (погугли), или просто var json_object = eval('(' + json_string + ')');, но в последнем варианте будет выполнятся другой JS код, если передашь..

Спустя 2 часа, 37 минут, 16 секунд (12.08.2009 - 20:16) SunSet написал(а):
FatCat
Я ж говорю, что не столь важен сам запрос, сколько его вывод. При загрузке должен формироваться <select><option></option></select>, в него подставляться значения из базы. Пусть это будет некая таблица table1 с полями years, month_id, names из которых выводится соответственно такая строка 'Year1':{'month1':'Январь','month2':'Февраль'},

kirik
Хоть я в JavaScript "ноль", но вроде мне не в пхп надо этот JS-обьект вставлять, а в JS кусок динамически формирующийся ПХП.

syncList1.dataList = { Тут вывод };

Спустя 31 минута, 53 секунды (12.08.2009 - 20:48) kirik написал(а):
Цитата (SunSet @ 12.08.2009 - 12:16)
Хоть я в JavaScript "ноль", но вроде мне не в пхп надо этот JS-обьект вставлять, а в JS кусок динамически формирующийся ПХП.

Ну.. Динамически формируешь массив в php, потом преобразуешь в строку при помощи json_encode(), отдаешь клиенту, на котором производишь разбор строки как JSON объекта, или просто eval'ишь.
С AJAX'ом разбираешься?

Спустя 8 минут, 25 секунд (12.08.2009 - 20:57) SunSet написал(а):
kirik
Нет, ни чуть unsure.gif Понимаю как на пхп вытянуть нужное для вывода, но как это для явы подставить не знаю.

PHP
syncList1.dataList = {

  
'ie':{'ie_win':'Windows','ie_mac':'Mac'},
  
  
'safari':{'safari_mac':'Mac'},


Вот готовый рабочий код. Но тут для двух <option></option>. А мне нужно вытягивать возможно с сотню- две. То есть нужно чтоб строчка за строчкой формировалось "'Значение':{'Значение':'Значение','Значение':'Значение'},"

Спустя 14 минут, 11 секунд (12.08.2009 - 21:11) kirik написал(а):
Цитата (SunSet @ 12.08.2009 - 12:57)
но как это для явы подставить не знаю

А.. вонна как.. Разберись с AJAX, там не сложно smile.gif

Спустя 2 минуты, 27 секунд (12.08.2009 - 21:13) SunSet написал(а):
kirik
Не сложно сказать "Там не сложно") Если это все в пару строк делается можешь набросать? Если много кода, то так и скажи, буду искать другие варианты sad.gif

Спустя 4 минуты, 47 секунд (12.08.2009 - 21:18) kirik написал(а):
SunSet
Вот тут глянь. Еще почти прикрутил к нему разбор JSON и XML, можешь подождать, сегодня-завтра обновлю.

Спустя 7 минут, 12 секунд (12.08.2009 - 21:25) SunSet написал(а):
kirik
Наверно, или я не понимаю что ожидаю в ответ услышать, или ты усложняешь все)) В моем понимании должно быть приблизительно следующее: Запрос к базе, вытягиваем запрашиваемое из таблицы, потом вывод через echo, где подставляем то что вытянули, только обрамлять с нужными двоеточиями, скобками и прочим. Так вот интерисует именно последнее, как вывести? Будет ли ЯваСкрипт видеть то, что выводится внутри него через пхп aeyrwbtq echo?

Спустя 1 минута, 1 секунда (12.08.2009 - 21:26) FatCat написал(а):
Джаваскрипт - это текстовая строка. Вот и собираешь ее.
PHP
$q = "SELECT * FROM table1 WHERE трам-пам-пам=тру-ля-ля";
if (!($p = mysql_db_query(DB, $q)))
{
    echo mysql_errno(), mysql_error();
    return 0 ;
}
while(
$r = mysql_fetch_array($p))
{
    echo "'".$r['Year1']."':{'month1':'".$r['month1']."','month2':'".$r['month2']."'},".PHP_EOL;
}

Спустя 4 минуты, 46 секунд (12.08.2009 - 21:31) kirik написал(а):
Гм.. Это нужно?
PHP
while($r mysql_fetch_array($p))
{
    
$arr[] = $r;
}
// ........ 

echo "<script>var json_obj = eval('(".json_encode($arr).")');</script>";

Спустя 6 минут, 26 секунд (12.08.2009 - 21:37) SunSet написал(а):
FatCat
Вот! Спасибо большое, то что и искал. ПРосто не знал будет ли ошибки при выводе символов (скобок, кавычек), нужно ли их экраинировать.

PHP_EOL - а это за что отвечает? То мой словарик по ПХП только куски кода выводит для примера.


kirik
Возможно, то же что и FatCat написал, но усложнено как для меня.

Спустя 2 минуты, 38 секунд (12.08.2009 - 21:40) kirik написал(а):
Цитата (SunSet @ 12.08.2009 - 13:37)
Возможно, то же что и FatCat написал, но усложнено как для меня.

Если нужно то, что FatCat написал, то так:
PHP
while($r = mysql_fetch_array($p))
{
    $arr[$r['Year1']] = $r;
}
echo json_encode($arr);

Да, кавычки и переносы строк экранировать нужно, чтобы этого не делать, юзай готовую функцию json_encode..

Спустя 7 минут, 54 секунды (12.08.2009 - 21:48) SunSet написал(а):
kirik
Спасиб, теперь есть с чем разбираться wink.gif
А PHP_EOL что такое?)

Спустя 1 час, 12 минут, 39 секунд (12.08.2009 - 23:01) kirik написал(а):
End Of Line, в разных ОС разные обозначения переходов строк. В юниксах - \n, в виндовс - \n\r (вроде..)

Спустя 12 минут, 57 секунд (12.08.2009 - 23:14) FatCat написал(а):
Цитата (kirik @ 13.08.2009 - 00:01)
End Of Line, в разных ОС разные обозначения переходов строк. В юниксах - \n, в виндовс - \n\r (вроде..)

Ага.
И умная пхп сама разобьет строки в любой операционной среде и на отдачу страницы, и на записи текста в файл.

Спустя 6 минут, 45 секунд (12.08.2009 - 23:20) SunSet написал(а):
Теперь понял. Спасибо wink.gif


_____________
... и помните! Каким бы ни был PHP, главное - чтобы он был защищенным! :) (PHP с Анфисой Чеховой)
Быстрый ответ:

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