Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Поиск Ajax

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
antonhristovsky
Отправлено: 05 Апреля, 2012 - 21:05:48
Post Id


Новичок


Покинул форум
Сообщений всего: 41
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




Здравствуйте. У меня есть страница /jquery2.php, на которой есть поиск. Вот её код:
CODE (html):
скопировать код в буфер обмена
  1. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
  2. <script type="text/javascript">
  3.         function runajax()
  4.         {
  5.                 var inp0 = $("#inp0").val();
  6.                 $.ajax({
  7.                   type: "POST",
  8.                   data: "key=" + inp0,
  9.                   url: "/ajax2.php",
  10.                   dataType: "json",
  11.                   success: function(data)
  12.                   {
  13.                         $("#firstname").text(data.firstname);
  14.                         $("#lastname").text(data.lastname);
  15.                   }
  16.                 })     
  17.         }
  18.         $(document).ready(function(){
  19.                 $("#inp0").keyup(runajax);
  20.         });
  21. </script>
  22.  
  23. Имя пользователя: <input type="text" id="inp0">
  24. <hr>
  25. <span id="firstname"></span> <span id="lastname"></span>

Данные передаються из файла ajax2.php:
PHP:
скопировать код в буфер обмена
  1. <?
  2. if (isset($_POST["key"])) $key = $_POST["key"];
  3. if (!mysql_connect(localhost, root, azsxdc040197131))
  4. {
  5.         exit;
  6. }
  7. mysql_select_db("kohana");
  8. $q = mysql_query("SELECT * FROM users WHERE firstname = '$key'");
  9. $res = mysql_fetch_assoc($q);
  10. echo json_encode($res);
Я не могу понять как можно на страницу выводить не один результат поиска,а много(все). Я так понимаю как-то нужно использовать цикл javascrip???


Отредактировано модератором: LIME, 05 Апреля, 2012 - 21:10:43
 
 Top
LIME
Отправлено: 05 Апреля, 2012 - 21:12:43
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




нет
формируйте хтмл в пхп обработчике
там запускайте цикл
и результирующий хтмл возвращайте
 
 Top
antonhristovsky
Отправлено: 05 Апреля, 2012 - 21:21:30
Post Id


Новичок


Покинул форум
Сообщений всего: 41
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




LIME а каки образом? можно пример привести?
 
 Top
LIME
Отправлено: 05 Апреля, 2012 - 21:36:40
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




навскидку
надо конечно будет допилить прилично
но принцип надеюсь поймете
хотя предлагаю лучше использовать метод $().load()
гораздо проще
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. if (isset($_POST["key"])) $key = $_POST["key"];
  3. if (!mysql_connect(localhost, root, azsxdc040197131))
  4. {
  5.         exit;
  6. }
  7. $content=array('firstname'=>'','lastname'=>'');
  8. mysql_select_db("kohana");
  9. $q = mysql_query("SELECT firstname,lastname FROM users WHERE firstname = '$key'");
  10. while ($res = mysql_fetch_assoc($q)) {
  11.         $content['firstname'].='<h1>'.$res['firstname'].'</h1><br/>';
  12.         $content['lastname'].='<h1>'.$res['lastname'].'</h1><br/>';
  13.         }
  14. echo json_encode($content);
 
 Top
antonhristovsky
Отправлено: 05 Апреля, 2012 - 21:41:16
Post Id


Новичок


Покинул форум
Сообщений всего: 41
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




LIME так) это я понял) Но если это вывести, то оно сначало выводит все имена, а потоом все фамилии) А как сделать имя - фамилия?
 
 Top
Viper
Отправлено: 06 Апреля, 2012 - 09:14:40
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




LIME объясните мне на кой случай вы генерите на стороне сервера html, пхаете его в json, а затем функцией для загрузки html-контента пытаетесь вывести? Это новый стиль такой?

antonhristovsky если у вас возвращается массив строк...

Создаете div там где нужны результаты
CODE (html):
скопировать код в буфер обмена
  1. <div id="search_result"></div>


и js
CODE (javascript):
скопировать код в буфер обмена
  1. var row = '';
  2. $.each(response, function(k, v){
  3.         row += '<div>ФИО: '+v.firstname+' '+v.lastname+'</div>';
  4. });
  5. $('#search_result').append(row);


Примерно так.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
avtor.fox
Отправлено: 06 Апреля, 2012 - 10:14:11
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)




Я решил аяксовый поиск вот так:

CODE (javascript):
скопировать код в буфер обмена
  1. <script type="text/javascript">
  2.         $(function() {
  3.                 $("#search").keyup(function(){
  4.                         var search = $("#search").val();
  5.                                                
  6.                         $.ajax({
  7.                                 type: "POST",
  8.                                 url: "search.php",
  9.                                 data: {"search": search},
  10.                                 cache: false,                                          
  11.                                 success: function(response){
  12.                                         $("#resSearch").html(response);
  13.                                 }
  14.                         });
  15.                         return false;
  16.                                        
  17.                 });
  18.         });
  19.         </script>



CODE (html):
скопировать код в буфер обмена
  1. <form action="search.php" method="post" name="form" onsubmit="return false;">
  2. <input name="search" type="text" id="search" placeholder="Введите параметры поиска">
  3. </form>
  4. <div id="resSearch"></div>


Файл search.php
PHP:
скопировать код в буфер обмена
  1. $query = mysql_query("SELECT * FROM `table'");
  2. if(mysql_num_rows($query) > 0){
  3.         while($r = mysql_fetch_array($query)){
  4.                 echo implode(" ", $r)."<br>";
  5.         }
  6. }

//
Упс. Есесьна пример без проверки данных.

(Отредактировано автором: 06 Апреля, 2012 - 10:38:56)

 
 Top
antonhristovsky
Отправлено: 08 Апреля, 2012 - 21:06:00
Post Id


Новичок


Покинул форум
Сообщений всего: 41
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




Скажите пожалуйста. Что я не правильно делаю??? Мне нужно вывести ВСЕ значения) А оно выводи только последние.
PHP:
скопировать код в буфер обмена
  1. <?
  2. if (isset($_POST["key"])) $key = $_POST["key"];
  3. if (!mysql_connect(localhost, root, azsxdc040197131))
  4. {
  5.         exit;
  6. }
  7. mysql_select_db("kohana");
  8. $q = mysql_query("SELECT * FROM users WHERE firstname = '$key'");
  9. $res = mysql_fetch_assoc($q);
  10.  
  11. if($res[lastname] == "")
  12. {
  13.     $pusto = "Пусто";
  14.         echo json_encode($pusto);
  15. }
  16. else
  17. {
  18.         while($r = mysql_fetch_array($q)){
  19.         echo json_encode($r['firstname'] ." " .$r['lastname']);
  20.     }
  21. }
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB