У меня есть рекламный сайт с большим количеством записей, хранящихся в mysql db.
На моей главной странице у меня есть форма, в которой пользователи могут указать критерии поиска. Действие установлено в файл myPhp.php.
myPhp.php содержит NO HTML, только php-код, и в основном это примерно так:
1- get values from FORM and build a SQL query
2- query MYSQL db.
3-display all results in a table using
`while($row=mysql_fetch_array($res))`
4- echo the table.
В этой таблице, созданной на PHP, у меня также есть несколько ссылок, и всякий раз, когда они нажимаются, вызывается функция javascript на родительской странице, которая присваивает какое-либо скрытое значение ввода, а затем снова отправляет форму выбранная переменная.
Ех: каждый раз, когда пользователи хотят перейти на следующую страницу в результатах поиска, им нужно щелкнуть ссылку "Далее", созданную на PHP, а затем вызывается javascript, который устанавливает скрытое значение ввода в "следующий", а затем форма снова представляется, а файл PHP GETS - переменная из скрытого ввода и определяет, что ее значение установлено на "NEXT", а затем отображает следующие результаты.
Неужели нет другого способа сделать все это? (то есть, лучший способ, когда дело доходит до производительности и надежности)
Я все еще учился, поэтому я очень благодарен за вашу помощь! Я буду обновлять этот вопрос каждый раз, когда вам нужно больше ввода.
Спасибо
Замените следующий вызов javascript ссылкой на
http://yourdomain/myPhp.php?page=2
Затем проверьте параметр get в файле myPhp.php:
if(isset($_GET['page']) AND is_numeric($_GET['page'])){
$limit = (int) $_GET['page'] * MAX_RECORDS . ', ' . MAX_RECORDS;
} else {
$limit = MAX_RECORDS;
}
//...
$query .= 'LIMIT '. $limit;
Конечно, вы должны изменить его, так как ваши константы меняются и т.д.
Этот метод называется разбиением на страницы. Взгляните на Zend Framework Paginator модуль для лучшего понимания.
Если эти ссылки имеют по крайней мере один и тот же класс на одной плате (с атрибутом title), вы можете присоединить к ним, чтобы присоединить все эти ссылки к событию с одним кликом и протестировать, чтобы увидеть, какой заголовок находится на нажатом элементе.
С этим вы можете использовать переключатель для запуска правильной функции для выполнения задачи (я полагаю, используя JQuery/Ajax).
Это должно сработать. По крайней мере, нет скрытых полей.
Пример:
<a href="myPhp.php?whatever you querystring is" title="NEXT">Next</a>
<a href="myPhp.php?whatever you querystring is" title="AdDetails">Ad Details</a>
При создании ссылки вы можете использовать запрос, чтобы указать параметр, который вы хотите отправить на сервер, вместо отправки формы. Поэтому, если у вас есть скрытый ввод в форме, называемой следующей, вы можете выполнить одно и то же:
<a href="myPhp.php?next=NEXT">Next</a>
На странице myPhp.php вы можете получить значение следующего так же, как при отправке формы.