Как создаются вьюверы?
Я не знаю техники создания вьвера. Но пришлось с чего то начинать и создал этот цифровой мусор. В php создан "шаблон"
$result['title01']=0; $result['title02']=0; $result['title03']=0; $result['title04']=0; $result['title05']=0; $result['title06']=0; $result['title07']=0; $result['title08']=0; $result['title09']=0; $result['title10']=0; Затем я продолжаю сорить там же: в зависимости от запроса, вынимаю данные из дб и заношу в рабочий массив $book $book = array(); $i=0; $books = mysql_query("SELECT title FROM books", $db); while ($mybook = mysql_fetch_array($books)) { $book[]=$mybook['title']; $i=$i+1; }; Ну и для полного счастья, значения выборки ложатся в "шаблон" if ($i>0){$result['title01']=$book[0];} if ($i>1){$result['title02']=$book[1];} if ($i>2){$result['title03']=$book[2];} if ($i>3){$result['title04']=$book[3];} if ($i>4){$result['title05']=$book[4];} if ($i>5){$result['title06']=$book[5];} if ($i>6){$result['title07']=$book[6];} if ($i>7){$result['title08']=$book[7];} if ($i>8){$result['title09']=$book[8];} if ($i>9){$result['title10']=$book[9];} С json_encode($result) мы переходим в JS. Там я тоже тесаком выбиваю грубо success: function(data){ var title01 = data.title01; var title02 = data.title02; var title03 = data.title03; var title04 = data.title04; var title05 = data.title05; var title06 = data.title06; var title07 = data.title07; var title08 = data.title08; var title09 = data.title09; var title10 = data.title10; Вот и всё. Объекты ракны нулю конечно не показываются. Хочется посмотреть следующие 10 книг = в шаблон летят другие данные. И, да, оно даже работает. НО: Если я захочу подцепить другие свойства из ДБ (например ID, цену, автора и дату издания), то эта вышеуказанная хреновина "слегка" изменит свою стройность с головы до пят. А вдруг понадобится выводить на странице не 10 книг, а 20.. или 30? Вопрос: в общем то напрашивается сам, как можно упростить данный подход. И как это делается вообще. Мне не интересны сами скрипты... Мне интересны какие подходы вам известны.. как делается в общем у нормальных людей. Спасибо |
$book = array(); $i=0; $books = mysql_query("SELECT title FROM books", $db); while ($mybook = mysql_fetch_array($books)) { $book[$i]=$mybook['title']; $i=$i+1; }; Вот так у вас сразу будет сделан ваш "шаблон" без вот этих смешных проверок $i>1..n хотя не, соврал, для шаблона надо будет вместо $book[$i] писать $result['title'.$i] |
редактировано
|
извиняюсь, не прочитал второе сообщение. Да, вы правы. Так я действовал изначально. Но, тогда создаётся лист - простые массивы. Я то их передам в JS. А там я не знаю как вытащить из data (функция .ajax) нужные мне данные. Вы знаете как это делается?
|
Цитата:
var title01 = data.title.1; Это правильное обращение? |
Ну в data насколько я знаю будет находитьяс ответ вашего php фала. Т.е. по сути - текст(но я не уверен, с php знаком на уровне создания своего каталога спростейшей выборкой из бд). Поэтому лучше, наверно отформатировать необходимые данные еще в php файле, а на выход отдать сразу отформатированный html код через echo. Тогда его можно будет проще воткнуть в страницу через jquery - $('#content').html(data)
|
Это вариант. Я тоже уже обдумывал перейти на этот путь развития сценария. Просто, уж больно хоцица разобраться как работать с JSON-ом.
Но чувствую, что в конце концов перейду на "html"-вариант. Недостатков я тут (пока) не вижу. Спасибо за советы. |
Млин, оказывается всё как просто. Генерируешь список и заносишь его из data в переменную, а потом просто достаёшь вот так:
var variable = data; $('#p').text(variable[1]); $('#p').text(variable[2]); Да.. теперь только разобраться как работать мномерными массивами. Например: result[0][id1]["title1"]; result[1][id2]["title2"]; result[2][id3]["title3"] Если надо вытащить данные "title2"? |
Часовой пояс GMT +3, время: 18:47. |