[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вычислить ширину экрана у пользователя на PHP как?
sharki
Всем привет, встал вопрос о правильности вывода столбцов на экране, выводятся они посредством генерирования в PHP ? так вот мне нужно передать переменную в PHP чтобы он основываясь на этом значении создавал столбцы вот пример

ширина экрана <=1024 передать $r = 3;
ширина экрана >=1280 передать $r = 4;

Передать эти параметры можно только GET параметром?) Только как правильнее, чтобы он не делал 100500 перенапрвлений.



Спустя 6 минут, 57 секунд (24.11.2010 - 12:43) Basili4 написал(а):
sharki
пыха знать не знает про пользователя и того какой у него может быть монитор и естьли он у него вообще.

это можно делать только JS и через аякс передавать пыхе

Спустя 10 минут, 24 секунды (24.11.2010 - 12:53) sergeiss написал(а):
Неправильный подход... Изначально неправильный.

Надо делать либо "резиновый" дизайн, либо делать нужные настройки (размеров) в JS, уже после загрузки к клиенту. Запуск нужной JS-функции можно сделать в событии onload для body.

Спустя 20 минут, 21 секунда (24.11.2010 - 13:14) sharki написал(а):
я сделал уже резиновый , вот функция которая генерирует столбцы и т.д..
// функция вывода  категорий
function view_shop_cat() {
// выбираем нужные нам поля
$sql = "SELECT cat_mag.id, cat_mag.desc, cat_mag.title, files_cat.put
FROM cat_mag,files_cat
WHERE files_cat.id = cat_mag.img
"
;
// вызываем функцию запроса из БД
$result = db_select($sql);

// если есть записи в БД то выводим в цикле
echo "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">" ;
if(mysql_num_rows($result) > 0) {
$i = 0;
$r = 3; // вот этот параметр, по сколько выводить


while ($row = mysql_fetch_assoc($result))
{
if($i%$r==0) // Если при делении на 3 или 4 в остатке числа 0, то выполняется действие
{
echo '</tr><tr>';
}
$pr = '100%';
printf ("
<td>
<table width=
\"%s\" height=\"%s\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td valign=
\"top\"><a href = \"?act=shop&id_scat=%s\" title=\"%s\">%s</a></td>
</tr>
<tr>
<td height=
\"96\" valign=\"top\">
<div style=
\"width:150px; height:150px; margin: 5px auto 5px auto;\">
<a href =
\"?act=shop&id_scat=%s\" title=\"%s\"><img src='%s' border='0'></a>
</div>
</td>
</tr>
</table> </td>
"
,$pr,$pr,(int)$row['id'],htmlspecialchars($row['desc']),htmlspecialchars($row['title']),(int)$row['id'],htmlspecialchars($row['desc']),$row['put']) ;

$i++;
}
echo "</table>";
}
else {echo "В этой категории нету товаров"; return;} // если в базе данных нету записей по этой метке

}


А в шаблоне у меня просто вызывается эта функция

Спустя 2 минуты, 45 секунд (24.11.2010 - 13:16) sharki написал(а):
Можно конечно в шаблоне указать, если такая ширина то 3 или 4 и передать GETом в функцию...

Спустя 6 минут, 26 секунд (24.11.2010 - 13:23) sergeiss написал(а):
sharki - а вот скажи, плз... Мы с тобой стали говорить насчет ДИЗАЙНА. А зачем ты приводишь КОД ПХП, который его создаёт?

Если дизайн, то уж дизайн. Покажи HTML код, который ты получил в результате. Возьми его в браузере, после формирования страницы! Подумаем все вместе, что-то, может быть, поправим. А как ты его получил... Кому какая разница? Вот когда ты будешь знать, каков должен быть конечный код, то тогда и будешь думать о том, КАК ЕГО ПОЛУЧИТЬ.

Спустя 5 минут, 19 секунд (24.11.2010 - 13:28) sharki написал(а):
ок)

<table width="100%" border="0" cellspacing="0" cellpadding="0"></tr><tr>
            <td>
            <table width="100%" height="100%"border="1" cellspacing="0" cellpadding="0">
            <tr>
                <td  valign="top"><a href = "?act=shop&show_price=1" title="чай">чай</a></td>

              </tr>
              <tr>
                <td height="96" valign="top">
                  <div style="width:150px; height:150px; margin: 5px auto 5px auto;">
                  <a href = "?act=shop&show_price=1" title="чай"><img src='files_podcat/s_1290522272_91.jpg' border='0'></a>
                  </div>
                </td>
              </tr>
              </table>

            </td>
           
            <td>
            <table width="100%" height="100%"border="1" cellspacing="0" cellpadding="0">
            <tr>
                <td  valign="top"><a href = "?act=shop&show_price=2" title="Сок">Сок</a></td>
              </tr>
              <tr>
                <td height="96" valign="top">

                  <div style="width:150px; height:150px; margin: 5px auto 5px auto;">
                  <a href = "?act=shop&show_price=2" title="Сок"><img src='files_podcat/s_1290522273_770.jpg' border='0'></a>
                  </div>
                </td>
              </tr>
              </table>
            </td>
           
            <td>
            <table width="100%" height="100%"border="1" cellspacing="0" cellpadding="0">

            <tr>
                <td  valign="top"><a href = "?act=shop&show_price=3" title="Персики">Персики</a></td>
              </tr>
              <tr>
                <td height="96" valign="top">
                  <div style="width:150px; height:150px; margin: 5px auto 5px auto;">
                  <a href = "?act=shop&show_price=3" title="Персики"><img src='files_podcat/s_1290522274_608.jpg' border='0'></a>
                  </div>

                </td>
              </tr>
              </table>
            </td>
            </tr><tr>
            <td>
            <table width="100%" height="100%"border="1" cellspacing="0" cellpadding="0">
            <tr>
                <td  valign="top"><a href = "?act=shop&show_price=4" title="Яблоки">Яблоки</a></td>

              </tr>
              <tr>
                <td height="96" valign="top">
                  <div style="width:150px; height:150px; margin: 5px auto 5px auto;">
                  <a href = "?act=shop&show_price=4" title="Яблоки"><img src='files_podcat/s_1290522275_452.jpg' border='0'></a>
                  </div>
                </td>
              </tr>
              </table>

            </td>
            </table>


И вот как выглядит
user posted image

Спустя 1 час, 26 минут, 4 секунды (24.11.2010 - 14:54) inpost написал(а):
Тут либо подгонять в JS, либо в процентах выставляй размеры.
В начале js получаешь ширину и высоту экрана, отправляешь в кукисы, оттуда пхп берёт данные и использует.

Так же замени printf на echo! printf работает дольше!
echo можно открывать одинарной кавычкой, и не надо париться будет с экранизацией:
echo '<div class="beeeer">';

Спустя 4 минуты, 45 секунд (24.11.2010 - 14:59) sharki написал(а):
не знал что медленнее) в следующий раз буду делать echo
Думаю лучше в функцию передавать еще один параметр(get), и там уже его применять

Спустя 16 минут, 22 секунды (24.11.2010 - 15:15) sergeiss написал(а):
Если уж ты делаешь таблицу, так и выстави проценты для колонок. Кто мешает? Вот так, например
<table width="100%">
<tr>
<td
width="33%"> </td>
<td
width="33%"> </td>
<td>
 </td>
</tr>
</table>


А уж внутри колонок делай всё, что надо.

И еще - запись height="100%" совершенно "беспонтовая" тут.

Спустя 2 минуты, 11 секунд (24.11.2010 - 15:17) sharki написал(а):
и тогда не нужны будут дополнительные условия? ну т.е if($i%$r==0) и т.д ?

Спустя 3 минуты, 28 секунд (24.11.2010 - 15:21) sergeiss написал(а):
Ты не спрашивай, а поэкспериментируй smile.gif

Спустя 1 час, 1 минута, 14 секунд (24.11.2010 - 16:22) inpost написал(а):
sergeiss
Ты немного не понял, тут если ширина большая слишком - тогда четвертый <td> должен поместиться!

Спустя 1 час, 25 минут, 14 секунд (24.11.2010 - 17:47) vital написал(а):
Цитата (sharki @ 24.11.2010 - 10:14)
я сделал уже резиновый , вот функция которая генерирует столбцы и т.д..
// функция вывода  категорий
function view_shop_cat() {
// выбираем нужные нам поля
$sql = "SELECT cat_mag.id, cat_mag.desc, cat_mag.title, files_cat.put
FROM cat_mag,files_cat
WHERE files_cat.id = cat_mag.img
"
;
// вызываем функцию запроса из БД
$result = db_select($sql);

// если есть записи в БД то выводим в цикле
echo "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">" ;
if(mysql_num_rows($result) > 0) {
$i = 0;
$r = 3; // вот этот параметр, по сколько выводить


while ($row = mysql_fetch_assoc($result))
{
if($i%$r==0) // Если при делении на 3 или 4 в остатке числа 0, то выполняется действие
{
echo '</tr><tr>';
}
$pr = '100%';
printf ("
<td>
<table width=
\"%s\" height=\"%s\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td valign=
\"top\"><a href = \"?act=shop&id_scat=%s\" title=\"%s\">%s</a></td>
</tr>
<tr>
<td height=
\"96\" valign=\"top\">
<div style=
\"width:150px; height:150px; margin: 5px auto 5px auto;\">
<a href =
\"?act=shop&id_scat=%s\" title=\"%s\"><img src='%s' border='0'></a>
</div>
</td>
</tr>
</table> </td>
"
,$pr,$pr,(int)$row['id'],htmlspecialchars($row['desc']),htmlspecialchars($row['title']),(int)$row['id'],htmlspecialchars($row['desc']),$row['put']) ;

$i++;
}
echo "</table>";
}
else {echo "В этой категории нету товаров"; return;} // если в базе данных нету записей по этой метке

}


А в шаблоне у меня просто вызывается эта функция

Простите. Но говнокод же как он есть.

Вы про шаблонизаторы слышали?

Спустя 30 секунд (24.11.2010 - 17:48) vital написал(а):
Проу прощения, слышали. Так чего не пользуетесь?

Спустя 9 минут, 10 секунд (24.11.2010 - 17:57) Basili4 написал(а):
vital
потому что шаблонизатры и есть ГК.

Спустя 2 минуты, 12 секунд (24.11.2010 - 17:59) vital написал(а):
Цитата
потому что шаблонизатры и есть ГК.

Обоснуйте.
Цитата
А в шаблоне у меня просто вызывается эта функция


Но глупо использовать шаблон, и при этом не использовать одновременно.

Спустя 18 минут, 5 секунд (24.11.2010 - 18:17) Basili4 написал(а):
vital
php отличный шаблонизатор. и без танцев шаблоны могут быть и такими
<intput value="<?php echo $a; ?>" >

и такими

<intput value="{$a}" >

использование программы шаблонизатора не дает основание утвержадать что без неё нельзя использовать шаблон.



Спустя 50 секунд (24.11.2010 - 18:18) Basili4 написал(а):
а вот использование шаблонизатора это лишние операции интерпритатор php это уже и так делает

Спустя 23 секунды (24.11.2010 - 18:19) sharki написал(а):
Я сделал это для будущего, я смогу на ajax просто вызвать другую функцию которая у меня на этой же странице, без загрузки дополнительно кода html и т.д, заменит на то что захочу, и будет всё в ажуре)

Спустя 1 минута, 17 секунд (24.11.2010 - 18:20) sharki написал(а):
А ваши "шаблонизаторы" навернео имеется введу smarty не дадут такой гибкости

Спустя 2 минуты, 50 секунд (24.11.2010 - 18:23) sharki написал(а):
Вот пример, только я тут пока ен использовал ajax
  <div id="container">
<div
id="content">
<?

switch($op)
{
case 'login':
authorization($login,$password);
break;

case 'registration':
form_registration();
break;

case 'reg':
reg($user,$password,$password2,$email);
break;

case 'remember':
remember();
break;

case 'exit_user':
exit_user();
break;
}
?>
</div>
<!-- #content-->
</div><!-- #container-->

Спустя 6 минут, 52 секунды (24.11.2010 - 18:29) sergeiss написал(а):
Горячие эстонские парни!!! А нафига флудить в тематическом разделе???

Цитата (inpost @ 24.11.2010 - 17:22)
Ты немного не понял, тут если ширина большая слишком - тогда четвертый <td> должен поместиться!

Ну и пожалуйста... Но кто мешает сделать так, как я уже предлагал, несколько часов тому назад?
Цитата (sergeiss @ 24.11.2010 - 13:53)
либо делать нужные настройки (размеров) в JS, уже после загрузки к клиенту. Запуск нужной JS-функции можно сделать в событии onload для body.

Надо только немного отойти от "принятой" автором схемы. А именно, надо разместить все картинки в ДИВах, безо всяких таблиц. И уже на клиентской стороне правильно их расставить. Как удобно. Хоть по 3 в ряд, хоть по 4, в зависимости от размера окна браузера. И более того: эта же функция сможет переставить картинки, если юзер вдруг захочет изменить этот размер, когда картинка уже загружена. А можно и с частичным наложением друг на друга расположить эти картинки smile.gif Можно при этом получить красивый эффект, типа стопки картинок smile.gif.

Спустя 2 минуты, 50 секунд (24.11.2010 - 18:32) Basili4 написал(а):
sergeiss
есть еще более красивое решение сверстать все дивами и не парится если див не влезет он автоматом переносится. (Я то знаю 2 дня избавлялся от этого)

Спустя 5 минут, 41 секунда (24.11.2010 - 18:38) vital написал(а):
Цитата
php отличный шаблонизатор. и без танцев шаблоны могут быть и такими

Я ничего не имею против нативных шаблонов. ВЫ не поняли основную мысль..
Цитата
 printf ("
            <td>
            <table
width=\"%s\" height=\"%s\"  border=\"1\" cellspacing=\"0\" cellpadding=\"0\">
            <tr>
                <td  valign=
\"top\"><a href = \"?act=shop&id_scat=%s\" title=\"%s\">%s</a></td>
              </tr>
              <tr>
                <td height=
\"96\" valign=\"top\">
                  <div style=
\"width:150px; height:150px; margin: 5px auto 5px auto;\">
                  <a href =
\"?act=shop&id_scat=%s\" title=\"%s\"><img src='%s' border='0'></a>
                  </div>
                </td>
              </tr>
              </table> </td>
            "
,$pr,$pr,(int)$row['id'],htmlspecialchars($row['desc']),htmlspecialchars($row['title']),(int)$row['id'],htmlspecialchars($row['desc']),$row['put']) ; 

ЭТО по вашему нормальный шаблон?

Спустя 47 секунд (24.11.2010 - 18:39) vital написал(а):
посреди цикла в логике?

Спустя 2 минуты, 34 секунды (24.11.2010 - 18:41) Basili4 написал(а):
vital
ну это не шаблон ...
А Вы и не говорили про шаблон

Вы упомянули именно шаблонизаторы. Разве не так ?

Спустя 1 минута, 25 секунд (24.11.2010 - 18:43) vital написал(а):
Цитата
ну это не шаблон ...

А должен быть.

Цитата
Вы упомянули именно шаблонизаторы

Шаблонизаторы могут быть и нативные. Суть в самой теории,а не ее реализации. Я об этом.

Спустя 6 минут, 23 секунды (24.11.2010 - 18:49) Basili4 написал(а):
быть должен. но беда то не в том есть ли шаблон или его нет задача стоит в том чтобы переносить изображения на другу строку и ровнять чтоб казалось что они в таблице.

и тут шаблонизаторы ни причем. а про ГК а имел виду именно скрипты типа смарти писаные на пыхе являющие собой обертку над пыхой в области замены переменных на их значения

Спустя 1 час, 38 минут, 16 секунд (24.11.2010 - 20:27) sergeiss написал(а):
Цитата (vital @ 24.11.2010 - 19:38)
ЭТО по вашему нормальный шаблон?

Пока еще только прошу (уже "ненавязчиво" помахивая мечом smile.gif) не разводить холиварных войн и не флудить в тематическом разделе. Мало того, что это просто неэтично, так еще и противоречит Правилам форума. Иначе забаню нафигЪ.
В данном случае, как верно заметил Василич, речь идет о дизайне, а не о коде, которым он реализуется. Вот когда ТС определится с дизайном, тогда (если ему надо) он спросит совета о реализации.
Быстрый ответ:

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