Как создаются вьюверы?
Я не знаю техники создания вьвера. Но пришлось с чего то начинать и создал этот цифровой мусор. В 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, время: 16:18. |