![]() |
0 Всего найдено: 24
JonGol
Сообщение
29/07/2007 17:56
Копия темы
Программеры, хелп :) . Подскажите, как вывести таблицу выбранных для сранения товаров, как тут www.eldorado.ru/cat/5003/.. выберите 2-3 для сравнения. Чтото не могу придумать :(
Darx
Сообщение
29/07/2007 19:36
Копия темы
Как вариант . При клике на чебкоксы дописывай с помощью JS линк к ссылке «Сравнить» что-то наподобие compare.php?a1=...a2=.. Вариант не идеален конечно, но все же. document.getElementById(«link1»).href=document.getElementById(«link1»).href+ 'something';
Donate
Сообщение
29/07/2007 20:15
Копия темы
Тю. . Все через PHP. Передаешь через POST-запрос выбранные чикбоксы на страницу, где выводишь данные. Значение value для каждого чикбокса это идентификатор товара. Считаешь количество переданных переменных и из этого строишь таблички сравнения. Все очень просто, если я правильно понял вопрос.
JonGol
Сообщение
29/07/2007 20:49
Копия темы
. Вы не поняли меня друзья, я не могу придумать как из базы данные вытянуть и закинуть в таблицу в таком виде, т.е. как цикл прогнать. вроде придумал, но не оченьнравиться самому.
Neutral
Сообщение
29/07/2007 21:03
Копия темы
. в форме где выбирать товары для сравнения чекбоксы обзываешь так, чтобы они в массив уложились, типо input type=checkbox name=tovars[1] потом пробегаешься циклом по массиву $_POST[tovars], выдергивая данные из базы и забивая их в новый двумерный массив. потом по этому массиву в два цикла генеришь таблицу. а если количество параметров у каждого товара одинаковое, то и в один сгенеришь.
Neutral
Сообщение
29/07/2007 21:04
Копия темы
. либо должно помочь, либо меня не в ту степь понесло.
lcfsoft
Сообщение
29/07/2007 21:11
Копия темы
. Цикл прогнать? Ну вот три товара. Делаешь хороший запрос, который вернет по записи по каждому товару. Ну это конкретизируя. И в цилке прогоняешь все эти запси. И вертикально выводишь. :))
Donate
Сообщение
29/07/2007 21:17
Копия темы
. Я не про ссылку говорил! Сделать одной кнопочкой, а то хрен поймешь, что с чем сравниваешь (как на том сайте тупо). Просто сохраняешь переданные переменные в массив и прогоняешь цикл по нему, его элементы (массива) будут id товаров. Вывел все по одному товару, потом перепрыгиваешь на следующую колонку. Все элементарно!
JonGol
Сообщение
29/07/2007 21:32
Копия темы
. да я с таблицей не могу подружиться, как вывести все как там на сайте. все в базе уж, все запросы готовы, а таблица корявая :(
csky
Сообщение
29/07/2007 21:40
Копия темы
. теги режутся, сколько строк вернуд запрос, столько и тд /тд
JonGol
Сообщение
29/07/2007 22:20
Копия темы
. Надо както придумать чтобы не тяжелый был и простенький :)
csky
Сообщение
29/07/2007 23:09
Копия темы
. кто не тяжелый-то? =) Запрос простецкий, вида where id in (1,4,5)
Maskon
Сообщение
30/07/2007 00:08
Копия темы
поправте меня плиз если не прав . таблицу можно формировать и на сервере и на клиенте... про сервер и так все ясно, а на клиенте както делал... передавал типа XML респонс, но пользовал просто строку с разделительными символами а на клиенте преобразовывал с помощью JS в массив и из него формировал таблицу нет это был особый случай, а вообще какие могут быть подводные камни при таком подходе?
typhoon
Сообщение
30/07/2007 06:26
Копия темы
. $qrs = mysql_query(«Запрос к БД в соответствии с выбранными чекбоксами»); // Чтоб не заниматься постоянными фетч_арраями, записи сразу сохраним в массив $товары = array(); while ($r = mysql_fetch_row($qrs)) $товары[] = $r; $количество_товаров = count($товары); // Теперь прогоняем цикл по количеству полей $строки = array("<tr><td>Для сравнения вы выбрали следующие товары</td>", "<tr><td>Страна</td>", "<tr><td>Гарантия</td>", "<tr><td>и т.д., заголовки полей</td>"); for ($i=0; $i < $количество_полей_товара-3; $i++) { // А теперь цикл по товарам for ($j=0; $j < $количество_товаров; $j++) { if ($i == 0) $строки[0] .= "<td>".$товары[$j][0]."<br />".$товары[$j][1]."<br />".$товары[$j][2]."</td>"; elseif ($i > 2) $строки[] .= "<td>".$товары[$j][$i]."</td>"; } $строки[].='</tr>'; } // Теперь формируем таблицу $на_вывод = "<table>"; for ($i=0; $i < $количество_полей_товара; $i++) { if ($i == 5) $на_вывод .= "<td colspan=".$количество_товаров+1.">Объем</td>"; if ($i == 10) $на_вывод .= "<td colspan=".$количество_товаров+1.">Общие характеристики</td>"; $на_вывод .= "<td>".$строки[$i]."</td>"; } $на_вывод .= "</table>"; echo $на_вывод;
typhoon
Сообщение
30/07/2007 06:36
Копия темы
. Писал на лету, поэтому за ошибки и неточности не ругайте ))) Главное идея понятна
JonGol
Сообщение
30/07/2007 06:58
Копия темы
. Примерно это и надо было, но там хуже, я не знаю сколько даже будет атрибутов у товаров. ну да ладно :)
typhoon
Сообщение
30/07/2007 07:11
Копия темы
. Но позвольте, количество атрибутов товара величина фиксированная. Если конечно не баловаться ALTER'ами по добавлению доп атрибутов )) Когда таблица товаров в БД сформирована, количество атрибутов уже известно. Кстати, чтобы не перечислять в описании массива $строки заголовки полей, их тоже можно хранить в БД и тогда в циклах все значения формируются автоматом
JonGol
Сообщение
30/07/2007 07:30
Копия темы
. У меня просто есть основные атрибуты, и атрибуды кторые админ для товара сам вюил, вот и получаеться что у одного товара их 3 а у другова 10, не красиво получаеться :(
typhoon
Сообщение
30/07/2007 07:33
Копия темы
0
. А! Я понял) Таблицу надо делать по макс. количеству атрибутов, а в тех товарах, где нет данного атрибута делать прочерки или пусто |
Выразить восторг, поругаться или предложить что-нибудь можно на форуме |
Для обсуждения этого сервиса так же есть темы на фрилансе по поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал" |