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 :: Динамическое обновление выводимой информации из БД MySQL

 PHP.SU

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


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

> Описание: Динамическое обновление выводимой информации из БД MySQL
Vovasa
Отправлено: 23 Января, 2014 - 16:06:13
Post Id


Новичок


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


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




Здраствуйте.
Уже который час сижу в гугле. Ничего подобного не нахожу.
В общем у меня такая проблема.

есть код в котором происходит вывод данных из mysql в PHP.
На этой же странице есть фильтр(select) по выбору которых происходит фильтрация и уточнение запроса, после выбора что бы произошла фильтрация происходит обновление страницы. Теперь вопрос как сделать чтобы после выбора(select->option) происходило обновление информации без обновления страницы.
Спасибо за внимание и уделенное мне время.
 
 Top
peters
Отправлено: 23 Января, 2014 - 16:20:58
Post Id


Гость


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


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




без обновления страницы - ajax'ом
либо javascript'ом например если у вас данные выводятся в таблице, то в обработчике события изменения select'а проходим по строкам таблицы, если не удовлетворяет условию - скрываем их, если удовлетворяет - показываем
 
 Top
Vovasa
Отправлено: 23 Января, 2014 - 16:27:44
Post Id


Новичок


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


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




peters пишет:
без обновления страницы - ajax'ом
либо javascript'ом например если у вас данные выводятся в таблице, то в обработчике события изменения select'а проходим по строкам таблицы, если не удовлетворяет условию - скрываем их, если удовлетворяет - показываем

вот это мой select
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. $cb_q=mysql_query("SELECT * FROM `sorting`");
  4. $cb_r=mysql_num_rows($cb_q);
  5. ?>
  6. <select onchange='location.href=this.value' >
  7. <option><?php echo $l_none;?></option>
  8. <?php
  9. if($cb_r!==0)
  10. {
  11. for($cd=0;$cd<$cb_r;$cd++)
  12. {
  13. $cb_f=mysql_fetch_array($cb_q);
  14. $cb_nm=$cb_f['name'];
  15. $cb_ack=$cb_f['acces_key'];
  16. if($fsort==$cb_ack)
  17. {
  18. $ch="selected";
  19. }
  20. else
  21. {
  22. $ch="";
  23. }
  24. ?>
  25. <option value='<?php echo "list.php?fastsort=$cb_ack";?>' <?php echo $ch;?>><?php echo $cb_nm;?></option>
  26.  
  27. <?php
  28. }
  29. }
  30. ?>
  31. </select>
  32.  


мне надо передать например параметр fastsort. и javascript и ajax подойдут.

(Отредактировано автором: 23 Января, 2014 - 16:28:13)

 
 Top
peters
Отправлено: 23 Января, 2014 - 16:52:12
Post Id


Гость


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


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




приведу пример, а вы его под себя переделайте:

пусть есть таблица с данными (которые придется сортировать) и таблица сортировок (как у вас)

table people (id, name, gender_id):
1 Вася 1
2 Петя 1
3 Оля 2
4 Маша 2
5 Олег 1

table sorting (id, name):
1 Мужской
2 Женский


основная страница:

PHP:
скопировать код в буфер обмена
  1. <html>
  2. <head>
  3. <script .... //тут подключаем jquery </script>
  4. <script>
  5. $(document).ready(function() {
  6.  
  7. $('#sel').change(function() {
  8.  
  9. var fsort = $(this).val();
  10.  
  11. $.post ('get_table.php',
  12.  { "sort": fsort },
  13.  function (data) {
  14. $('#tbl tbody').html(data);
  15. });
  16.  
  17.  
  18. }
  19. });
  20.  
  21.  
  22. </script>
  23. </head>
  24. <body>
  25. <?
  26.   //тут подключения к базе
  27.   $r = mysql_query("SELECT * FROM sorting");
  28. ?>
  29.  
  30. <select id="sel"><option value="0">Любой</option>
  31. <?
  32.  while ($row = mysql_fetch_assoc($r)) {
  33.  echo '<option value="'.$row['id'].'"'>'.$row['name'].</option>
  34. }
  35. ?>
  36.  
  37. <table id="tbl">
  38. <thead>
  39. <tr><td>ID</td><td>Имя</td><td>Пол</td></tr></thead>
  40. <tbody></tbody>
  41. </table>
  42.  
  43. </body></html>


файл get_table.php:

PHP:
скопировать код в буфер обмена
  1. <?
  2.  
  3. $fsort = $_POST['sort'];
  4. $ext="";
  5. if ($fsort != 0) $ext = "WHERE gender_id=".$fsort;
  6.  
  7. $r = mysql_query ("SELECT * FROM people ".$ext);
  8.  
  9. $data = "";
  10.  
  11. while ($row=mysql_fetch_assoc($r)) {
  12. $data .= "<tr><td>".$row['id']."</td><td>".$row['name']."</td><td>".$row['gender_id']."</td></tr>";
  13. }
  14. echo $data;
  15.  
  16. ?>

(Добавление)
p.s. писал прямо здесь, не проверял, могут быть ошибки!!!
 
 Top
Vovasa
Отправлено: 23 Января, 2014 - 22:00:24
Post Id


Новичок


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


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




peters пишет:
приведу пример, а вы его под себя переделайте:

пусть есть таблица с данными (которые придется сортировать) и таблица сортировок (как у вас)

table people (id, name, gender_id):
1 Вася 1
2 Петя 1
3 Оля 2
4 Маша 2
5 Олег 1

table sorting (id, name):
1 Мужской
2 Женский


основная страница:

PHP:
скопировать код в буфер обмена
  1. <html>
  2. <head>
  3. <script .... //тут подключаем jquery </script>
  4. <script>
  5. $(document).ready(function() {
  6.  
  7. $('#sel').change(function() {
  8.  
  9. var fsort = $(this).val();
  10.  
  11. $.post ('get_table.php',
  12.  { "sort": fsort },
  13.  function (data) {
  14. $('#tbl tbody').html(data);
  15. });
  16.  
  17.  
  18. }
  19. });
  20.  
  21.  
  22. </script>
  23. </head>
  24. <body>
  25. <?
  26.   //тут подключения к базе
  27.   $r = mysql_query("SELECT * FROM sorting");
  28. ?>
  29.  
  30. <select id="sel"><option value="0">Любой</option>
  31. <?
  32.  while ($row = mysql_fetch_assoc($r)) {
  33.  echo '<option value="'.$row['id'].'"'>'.$row['name'].</option>
  34. }
  35. ?>
  36.  
  37. <table id="tbl">
  38. <thead>
  39. <tr><td>ID</td><td>Имя</td><td>Пол</td></tr></thead>
  40. <tbody></tbody>
  41. </table>
  42.  
  43. </body></html>


файл get_table.php:

PHP:
скопировать код в буфер обмена
  1. <?
  2.  
  3. $fsort = $_POST['sort'];
  4. $ext="";
  5. if ($fsort != 0) $ext = "WHERE gender_id=".$fsort;
  6.  
  7. $r = mysql_query ("SELECT * FROM people ".$ext);
  8.  
  9. $data = "";
  10.  
  11. while ($row=mysql_fetch_assoc($r)) {
  12. $data .= "<tr><td>".$row['id']."</td><td>".$row['name']."</td><td>".$row['gender_id']."</td></tr>";
  13. }
  14. echo $data;
  15.  
  16. ?>

(Добавление)
p.s. писал прямо здесь, не проверял, могут быть ошибки!!!


Спасибо, завтра попробую отпишусь!)
 
 Top
Vovasa
Отправлено: 24 Января, 2014 - 11:08:50
Post Id


Новичок


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


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




смотри я кое что нашел, это почти то что мне нужно, но до нажатия кнопки по умолчанию информация не выводится... как тут сделать так что бы вся информация выводилась, а потом уже после фильтрации отфильтрованная информация
это главная страница
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <html>
  3. <head>
  4.  
  5. <script type="text/javascript" src="jquery.js"></script>
  6. </head>
  7.  
  8. <body>
  9.  
  10. <form id="myForm">
  11. Вставте ID:<br/>
  12. <input id="username" type="text" size="90"><br/>
  13. <input type="submit" value="Отправить">
  14. </form>
  15.  
  16. <div id="content"></div>
  17.  
  18. <script>
  19. $(document).ready(function(){
  20.  
  21. $('#myForm').submit(function(){
  22. $.ajax({
  23. type: "GET",
  24. url: "ok/id.php",
  25. data: "username="+$("#username").val(),
  26. success: function(html){
  27. $("#content").html(html).fadeIn(1000);
  28. }
  29. });
  30. return false;
  31. });
  32.  
  33. });
  34.  
  35. $('#ajax').ajaxStart(function() {
  36. $(this).html('Подожди пожалуйста, идет загрузка!');
  37. $(this).fadeIn(1000);
  38. });
  39. $('#ajax').ajaxComplete(function() { $(this).fadeOut(1000); });
  40. </script>
  41.  
  42. </body>
  43. </html>
  44.  


это PHP

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. echo $_GET['username'];
  4. echo "OK";
  5. ?>
  6.  


мне нужно что бы например ОК сразу выводилось даже если username не введен и не нажат на submit

(Отредактировано автором: 24 Января, 2014 - 11:09:17)

 
 Top
SAD
Отправлено: 24 Января, 2014 - 11:15:31
Post Id



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


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


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




CODE (javascript):
скопировать код в буфер обмена
  1. $('#myForm').submit(function () {
  2.     $.ajax({
  3.         type: "GET",
  4.         url: "ok/id.php",
  5.         data: "username=" + $("#username").val(),
  6.         success: function (html) {
  7.             $("#content").html(html).fadeIn(1000);
  8.         }
  9.     });
  10.     return false;
  11. }).trigger('submit');
 
 Top
peters
Отправлено: 24 Января, 2014 - 11:22:09
Post Id


Гость


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


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




PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. if (isset($_GET['username'])) echo $_GET['username'];
  3. echo "OK";
  4. ?>


а в основном файле в строчку 32:

CODE (javascript):
скопировать код в буфер обмена
  1. $('#myForm').trigger('submit');


что то типа этого
 
 Top
noobphp
Отправлено: 17 Сентября, 2016 - 14:05:56
Post Id


Новичок


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


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




SAD пишет:
CODE (javascript):
скопировать код в буфер обмена
  1. $('#myForm').submit(function () {
  2.     $.ajax({
  3.         type: "GET",
  4.         url: "ok/id.php",
  5.         data: "username=" + $("#username").val(),
  6.         success: function (html) {
  7.             $("#content").html(html).fadeIn(1000);
  8.         }
  9.     });
  10.     return false;
  11. }).trigger('submit');


А ка сделать чтобы запрос отправлялся не по кнопке submit, а по выбору опций из select?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB