Помощь по Ajax и PHP - PullRequest
       14

Помощь по Ajax и PHP

1 голос
/ 21 октября 2009

Я сейчас вызываю php-код, который отображает результаты из mysql db, используя AJAX, чтобы страница не перезагружалась!

Внутри php-кода я создаю меню, в котором пользователи могут выбрать отображение только «частных объявлений» или «всех объявлений».

В настоящее время «все объявления» отображаются в контейнере div с использованием ajax, как уже упоминалось, потому что я не реализовал «показывать только личные данные», и здесь мне нужна ваша помощь ...

Можно ли использовать AJAX, чтобы проверить, нажимает ли пользователь на вкладку «показывать только личные данные» в отображаемом коде php, а затем присвоить переменной значение и отправить ее в тот же код php, который затем использует переменную для показывать только "частные объявления", БЕЗ создания нового запроса к mysql?

Если вам нужно больше информации, просто скажите мне ... НЕКОТОРЫЕ БОЛЬШЕ ВХОДА:

Вот что я хочу:

AJAX используется для проверки критериев поиска ... AJAX отправляет критерии в PHP ... PHP проверяет mysql db на наличие критериев и отображает их в таблицах, а также создает две ссылки: одну для "всех объявлений" и одну для "только личных" ... PHP отображает отображаемые таблицы ... AJAX отображает таблицы в контейнере DIV на странице HTML (innerhtml = blabla)

UPDATE ЗДЕСЬ ПРИХОДИТЕ, ЧТО Я ХОЧУ: пользователи нажимают на одну из ссылок, предоставляемых кодом PHP, говорят «только частный», AJAX реагирует и снова вызывает код PHP ... Код PHP на этот раз отображает таблицы по-разному, отфильтровывая все не частные объявления ... AJAX отображается в контейнере div ...

Возможно ли это, если да, не могли бы вы указать мне правильное направление, пожалуйста!

Спасибо

Ответы [ 4 ]

1 голос
/ 21 октября 2009

Если я правильно понял, вы хотите выполнить фильтрацию ваших объявлений по критериям. Это можно легко сделать без второго запроса в php-коде. Просто измените свой HTML-код, чтобы добавить класс в рекламной записи, которая описывает категорию. Затем добавьте кнопки, которые будут отфильтровывать нежелательные.

HTML:

<a href="#" id="all_ads">Display all ads</a>
<a href="#" id="normal_ads">Display normal ads</a>
<a href="#" id="private_ads">Display private ads</a>
<div id="ads">
<ul>
   <li class="normal">Advertisment 1</li>
   <li class="normal">Advertisment 2</li>
   <li class="private">PRIVATE Advertisment 1</li>
   <li class="normal">Advertisment 3</li>
</ul>
</div>

<!-- Then add the following code to capture click events -->
<script type="text/javascript">
$(document).ready(function() 
{
    $('#normal_ads').click(function() 
    {
        $('#ads li:not(.normal)').hide();
        $('#ads li.normal').show();
        return false;
    });

    $('#private_ads').click(function() 
    {
        $('#ads li:not(.private)').hide();
        $('#ads li.private').show();
        return false;
    });
    $('#all_ads').click(function() 
    {
        $('#ads li').show();
        return false;
    });
});
</script>

Это было написано с умом, я проверю это прямо сейчас. ОК, это работает.

Преимущество этого заключается в том, что вам нужно повторно запрашивать каждый клик пользователя, так как все рекламные объявления будут отправлены в первый раз, а JavaScript отфильтрует нежелательные. Вы также можете добавить некоторые эффекты в show / hide через эффекты jquery.

1 голос
/ 21 октября 2009

php должен просто выводить форму, поэтому javascript может определенно проверить значение формы перед отправкой и / или показом рекламы и выполнить фильтрацию на основе значения формы (или позволить стороне сервера запроса AJAX выполнить фильтрация).

0 голосов
/ 21 октября 2009

Просто добавьте токен в строку URL, к которой идет запрос XmlHTTP?

Другими словами «my.server.script.php? Ads = all» или «my.server.script.php? Ads = private» и проверьте переменные вашего запроса в сценарии PHP, чтобы определить, что нужно вернуть. *

0 голосов
/ 21 октября 2009

Если я правильно понял ваш вопрос, вы могли бы легко реализовать его с помощью JQuery.

HTML:
<a href="#" id="normal_ads">Display normal ads</a>
<a href="#" id="private_ads">Display private ads</a>
<div id="ads"></div>

JQuery:
$(document).ready(function() 
{
    $('#normal_ads').click(function() 
    {
        $('#ads').html("").load("ajax_ads.php?normal=1");
        return false;
    });

    $('#private_ads').click(function() 
    {
        $('#ads').html("").load("ajax_ads.php?private=1");
        return false;
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...