У меня есть эта страница (A), в которой есть поле ввода, и как только вы отправляете ее, она выполняет вызов AJAX и отображает результаты. Теперь мне нужно поле поиска на другой странице (B), которое после его отправки перенаправляет вас на предыдущую страницу (A), и результаты отображаются так, как если бы вы делали это на первой странице (A).

Что было бы лучшим способом справиться с этим?

2
roflwaffle 9 Сен 2010 в 00:50

6 ответов

Лучший ответ

Я не уверен, почему вы должны иметь две отдельные страницы с этим поиском. Проще всего было бы просто перенаправить пользователя со страницы B на страницу A с уже заполненным поиском. Другими словами, страница B действительно ничего не делает:

<?php
   /**
    * Page B
    */
   if(isset($_REQUEST['b_search'])) {
      header("Location: a_search.php?a_search=$_REQUEST[b_search]");
   }
   echo //page content
?>

<?php
   /**
    * Page A
    */
   $search = isset($_REQUEST['a_search']) ? $_REQUEST['a_search'] : null;
   //handle request for non-JS users, I hope
   echo //page content with search filled in
?>

/**
 * JS
 */
document.ready = function () {
   if (document.getElementById('search_field').value != null) {
      //make ajax call
   }
}
1
Explosion Pills 8 Окт 2010 в 03:20

Я делаю это, используя ajax, jquery и json ...

На странице (A) вы делаете вызов ...

$('input[name="find"]').live('click',function(){
  if($(this).val()){
  $.getJSON('find.php?users=' + $(this).val(), function(data) {
        var rows= "";
                 $.each(data.users, function(i,user){

            rows+= i % 2 ? '<tr class="flip">' : '<tr class="flop">'; ...

            rows+= '<td>' + user.id         + '</td>';
            rows+= '<td>' + user.name       + '</td>';
            rows+= '<td>' + user.score      + '</td>';
            rows+= '</tr>';

        });

        $('#list tbody').html(rows);
     }
   });
});

Страница find.php или страница (B)



<?php

$user = $_GET['users'] ;

// Search code by field ... 

// Print de result in JSON format ...

?>


Вернуть данные JSON, как это ...



{ 
  "action" : "find user",
  "founds" : "2",
  "users"  : [
       {
          "id"    : "33",
          "name"  : "Peter Park",
          "score" : "343"

       },
        {
          "id"    : "1",
          "name"  : "Clark Kent",
          "score" : "1200"
       }
  ]
}



Страница (A), как это ...


<table id='list' >
<thead><tr><th>Id</th><th>Name</th><th>Score</th></tr></thead>
<tbdoy>
</tbody>
</table>

<input type="text" name="find" value="Find User">

0
Roger Russel 17 Окт 2010 в 12:44

Вы могли бы заставить pageA.php принять параметр запроса, содержащий ключевые слова поиска, и если этому параметру присвоено значение, показать результаты на основе этого значения. Результаты будут простым включением, чтобы их можно было повторно использовать как для запроса AJAX, так и для обычного запроса.

1
Darin Dimitrov 8 Сен 2010 в 20:53

Используя единую логику (если время загрузки AJAX не имеет значения), вы можете сделать что-то вроде этого (или любой другой вариант):

<?php 
$Term = (isset($_REQUEST['Term'])) ? $_REQUEST['Term'] : 'null'; 
// Optional   default term 
?>
<script>
    function ajax(term){
        if (term == null)
            return false;
    // ajax function for the search box
    // probably fired onclick/onsubmit currently?
    }

    $(document).ready(function(){
        ajax(<?=$Term?>);
    });
</script>

В качестве альтернативы вы можете file_get_contents ("ajax_request.php? Param = $ PostValue") обработчик ajax и выводить его без вызова ajax onload.

0
Mahdi.Montgomery 8 Сен 2010 в 21:40

Так ты хочешь этот Аякс?

Чтобы сделать это с Ajax, я рекомендую вам создать страницу ajax.php, все, что он делает, это принимает запрос и выкладывает результат.

ajax.php?query=foo

А затем вывести результат в список или что-то ...

Затем используйте JavaScript для отображения ...

Но это только если вы хотите использовать ajax.

0
Quang Van 11 Сен 2010 в 01:33

Есть один метод, который выполняет функции поиска. Этот метод может быть вызван двумя способами. 1. Использование Ajax. 2. Использование параметров URL.

Когда вы вызываете страницу A со страницы B, вы передаете поисковый запрос в виде URL-параметров ... поэтому поиск завершен, и страница отображается с результатами.

При поиске на странице A .. вызывается метод ajax и возвращаются данные json / xml.

По сути, ваша страница просто должна включать обе логики!

0
Abdel Raoof 8 Сен 2010 в 20:56