2013-02-22 5 views
0

У меня есть сайт, на котором перечислены лучшие книги по всенародному голосованию. Книги хранятся в базе данных. Есть ли способ установить $ maxresults на ширину монитора? На больших мониторах это оставляет одну или две книги во всем нижнем ряду. Я бы хотел, чтобы каждая строка была заполнена независимо от разрешения. Может быть, заявление if? Мой код:Максимальное количество результатов на основе разрешения экрана

$maxresults = 21; 
    if($_GET['page']) 
    $page = $_GET['page']; 
    else 
    $page = 0; 
    $currentpage = $page; 
    $page = $page*$maxresults; 
    $numpages = QuickQuery("SELECT COUNT(id) FROM movies WHERE visible=1"); 
    $numpages = mysql_result($numpages, 0); 
    $numpages = $numpages/$maxresults-1; 
    $result = GetBooksByRangeID($page, $maxresults);//Show <maxresults> pages at a time 
    DisplayResults($result); 
    ?> 
+0

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

+0

Как мне это сделать? Может быть сделано и с javascript, верно? – JJM

+0

И если я не использую окно, открытое для полного размера монитора? Или, если я хочу изменить размер окна? Вы действительно все еще разрабатываете свои страницы, как если бы это было в 1993 году, а не в 2013 году? Это не отзывчивый дизайн, это ретроспективный дизайн .... и вы можете использовать таблицы и фреймы для вашего макета, а также –

ответ

0

Вы можете сделать это с помощью javascript. Не бойтесь, это не так сложно.

Во-первых, CHEC разрешение экрана: http://www.pageresource.com/jscript/jscreen.htm

Во-вторых, передать больше элементов на стороне клиента, и скрыть их динамически - установить дисплей = «NONE» или что-то подобное (вы можете использовать http://datatables.net/, например).

+0

Спасибо. Эта первая ссылка, которую вы отправили, показывает, как отправить пользователя на другую страницу на основе разрешения. Я не хочу этого делать. Я просто хочу, чтобы последняя строка книг отображалась горизонтально, как и во всех других строках. В настоящее время у меня есть $ maxresults, равный 21, который не делает этого – JJM

+0

, вам не нужно перенаправлять кого-либо в любом месте. Вместо window.location вы должны изменить элементы DOM (динамически изменять CSS элементов HTML), и вы получите то, что хотите. – ducin

0

Если вы ищете, чтобы это работало в зависимости от размера окна, а не от размера монитора (то есть оно должно заполнять окно браузера, но не запускаться за кадром, если окно меньше экрана), посмотрите на jQuery .width() функция (http://api.jquery.com/width/)

Если на дисплее каждой книги содержится в DIV, вы можете просто задать стиль для ДИВ быть float: left. Затем группа из них заполнит экран, пока не выйдет из комнаты, а затем перейдет на новую линию.

+0

Вам нужно сделать математику. Определите ширину доступного пространства окна (используя 'window.width()' или '$ (document) .width()'). Затем вы можете вычислить, сколько divs поместится в строке, разделив ширину окна/документа на ширину одного div. Или вы говорите, что не хотите менять количество книг, отображаемых в последней строке (потому что вы не можете получить идеальное разделение), а скорее хотите изменить расстояние между книгами в последней строке, чтобы заставить их быть равномерным если они не занимают столько места, сколько другие линии (у которых больше книг)? – EmmyS

+0

Если это то, что вы пытаетесь сделать, возможно, есть несколько способов обойти это. css не мой сильный костюм, но я думаю, вам нужно будет выяснить (через js или jq), какие элементы будут падать в последней строке, а затем стилизовать их отдельно от остальных. Там есть хорошая статья о равномерном размещении горизонтальных элементов: http://stackoverflow.com/questions/6865194/fluid-width-with-equally-spaced-divs – EmmyS

+0

Emmy - первый вариант верен. Я попытаюсь использовать jQuery .width и посмотреть, что я придумал. – JJM

Смежные вопросы