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 :: Динамические таблица и список

 PHP.SU

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


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

> Без описания
MarikOd
Отправлено: 09 Апреля, 2015 - 21:09:09
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Апр. 2015  


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




Здравствуйте, Уважаемые.
У меня к Вам вопрос.
Есть база данных с таблицей "USERS"( очень много разных полей). Данные из поля "user_name" загружаются в выпадающий список. Это готово.
Дальше, нужно сделать так, чтобы при выборе какого-нибудь имени из списка, внизу формировалась табличка с данными про этого юзера.
И вот тут загвоздка! Нужно сделать это так чтобы страничка не перезагружалась, а только менялись данные в таблице при изменении значения в списке.
Читал что нужно использовать ajax, но я в этом не разбираюсь. Если кто-то сталкивался с этим, помогите пожалуйста. Буду благодарен.
 
 Top
IGORtrue
Отправлено: 10 Апреля, 2015 - 01:16:06
Post Id



Частый гость


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


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




Короче вешайте на select событие выбора
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. function ajax_rec() {
  3. dataString = { action: 'action', id: 'тут короче выборка с селект id пользователя'};
  4.                 jQuery.ajax({ type: 'POST', url: 'путь к скрипту', data: dataString, cache: false,
  5.                   success: function(data){
  6.                         $('#result').empty();
  7.                         $('#result').append(data); } });
  8. }
  9.  


В php дальше работаете как обычно

Построили таблицу с помощью echo
 
 Top
MarikOd
Отправлено: 10 Апреля, 2015 - 14:11:35
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Апр. 2015  


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




IGORtrue, спасибо. попробовал, но не получилось(

Вот форма:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <script src="ajax.js"></script>
  7. </head>
  8.  
  9. <body>
  10.   <form name="contact" method="post" action="disp.php">
  11.     <fieldset>
  12.           <select name="select" id="select"  class="select" onchange="ajax_rec()">
  13.           <option>Маргарита</option>
  14.           <option>Саша</option>
  15.           <option>Евгений</option>
  16.           </select>
  17.      </fieldset>
  18.   </form>
  19. </body>
  20. </html>
  21.  


ajax.js
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. function ajax_rec() {
  3. var dataString = { action: 'action', id: 'select'};
  4. alert (dataString);
  5. return false;
  6.                 jQuery.ajax({ type: 'POST', url: 'disp.php', data: dataString, cache: false,
  7.                   success: function(data){
  8.                         $('#result').empty();
  9.                         $('#result').append(data); } });
  10. }
  11.  


disp.php
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4.  // Подключение к СУБД
  5.  $link=mysqli_connect("localhost", "u984317259_denis", "1111", "u984317259_disp");
  6.  
  7. if(isset($_POST['select'])){
  8.  
  9.  $sql=mysqli_query($link, "SELECT * FROM users");
  10.  
  11.  // Рисуем табличку
  12.  $table = "<table border=1 width=100% align=center>\n";
  13.   $table .= "<tr>\n";
  14.         $table .= "<td>Номер</td>\n";
  15.      $table .= "<td>Фамилия</td>\n";
  16.      $table .= "<td>Имя</td>\n";
  17.     $table .= "<td>Отчество</td>\n";
  18.      $table .= "<td>Дата рождения</td>\n";
  19.          $table .= "<td>Должность</td>\n";
  20.      $table .= "<td>Логин</td>\n";
  21.          $table .= "<td>Пароль</td>\n";
  22.      $table .= "</tr>\n";
  23.  
  24.  while ($row = mysqli_fetch_assoc($sql))
  25.  {
  26.    
  27.  $table .= "<tr>\n";
  28.      $table .= "<td>".$row['user_id']."</td>\n";
  29.      $table .= "<td>".$row['surname']."</td>\n";
  30.      $table .= "<td>".$row['name']."</td>\n";
  31.     $table .= "<td>".$row['middle_name']."</td>\n";
  32.      $table .= "<td>".$row['birthday']."</td>\n";
  33.          $table .= "<td>".$row['user_staff']."</td>\n";
  34.      $table .= "<td>".$row['user_login']."</td>\n";
  35.          $table .= "<td>".$row['user_password']."</td>\n";
  36.      $table .= "</tr>\n";
  37.  }
  38.  
  39.  $table .= "</table>\n";
  40.  
  41.  // Выводим заполненную таблицу на экран
  42.  echo $table;
  43. }
  44.  ?>
  45.  



Это упрощенный вариант. Запрос без условия (пусть выдаст хотя бы что то).
В вставил алерт, чтобы проверить - работает скрипт или нет.
Но таблица все равно не рисуется(
посмотрите плиз, если не сложно

(Отредактировано автором: 10 Апреля, 2015 - 14:25:18)

 
 Top
IGORtrue
Отправлено: 10 Апреля, 2015 - 15:39:52
Post Id



Частый гость


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


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




Так, в html у вас не хватает блока куда выводит js
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $('#result').empty();
  3. $('#result').append(data); } });
  4.  

Тоесть добавить
<div id="result" name="result">
</div>

А также у вас передаётся просто строка "select" в параметре id
CODE (javascript):
скопировать код в буфер обмена
  1. var dataString = { action: 'action', id: 'select'};


Нужно так примерно
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var select = $("#select").val();
  3. var dataString = { action: 'action', id: select};
  4.  


Получаем значение id в php


И выбираем (только фильтруйте значения все)
PHP:
скопировать код в буфер обмена
  1.  
  2.  $sql=mysqli_query($link, "SELECT * FROM users WHERE" . $_POST['id']);
  3.  
 
 Top
MarikOd
Отправлено: 10 Апреля, 2015 - 18:56:58
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Апр. 2015  


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




IGORtrue, спасибо) есть продвижение. Но все равно немного не так (хотя может это нельзя сделать?).
В общем, я ввожу имя в текстовое поле, нажимаю Enter и оно загружает PHP-файл. Да, запрос срабатывает, таблица отображается, но хотелось бы чтоб эта табличка формировалась под текстовым полем без перезагрузок и обновлений страницы.
Ведь эта табличка должна отображаться в этом блоке? я правильно понимаю?

Цитата:

<div id="result" name="result">
</div>


Заменил <select>(с ним не получается) на <input>.
1.html
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <title>Demo Contact Form - Submit Without Page Refresh using jQuery</title>
  7. <script src="ajax.js"></script>
  8. </head>
  9. <body>
  10.         <form name="contact" method="post" action="proc.php">
  11.                 <input tupe="text" name="select" id="select" class="select" OnClick="ajax_rec()">
  12.         </form>
  13.        
  14.         <div id="result" name="result">
  15.         </div>
  16. </body>
  17. </html>
  18.  


ajax.js
Вопрос: для чего тут {action: 'action', ?
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. function ajax_rec() {
  3. var select = $("input#select").val();
  4. var dataString = {action: 'action', select: 'select'};
  5. alert (dataString);
  6. return false;
  7.                 $.ajax({type: 'POST', url: 'proc.php', data: dataString, cache: false,
  8.                   success: function(data){
  9.                         $('#result').empty();
  10.                         $('#result').append(data); } });
  11. }
  12.  


proc.php

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4.  // Подключение к СУБД
  5.  $link=mysqli_connect("localhost", "u984317259_denis", "1111", "u984317259_disp");
  6.  
  7. $select=$_POST['select'];
  8.  
  9. if(isset($_POST['select'])){
  10.  
  11.  $sql=mysqli_query($link, "SELECT * FROM users WHERE name='".$select."'");
  12.  
  13.   // Рисуем табличку
  14.  $table = "<table border=1 width=100% align=center>\n";
  15.          $table .= "<tr>\n";
  16.                 $table .= "<td>Номер</td>\n";
  17.                 $table .= "<td>Фамилия</td>\n";
  18.                 $table .= "<td>Имя</td>\n";
  19.                 $table .= "<td>Отчество</td>\n";
  20.                 $table .= "<td>Дата рождения</td>\n";
  21.                 $table .= "<td>Должность</td>\n";
  22.                 $table .= "<td>Логин</td>\n";
  23.                 $table .= "<td>Пароль</td>\n";
  24.          $table .= "</tr>\n";
  25.  
  26.  while ($row = mysqli_fetch_assoc($sql))
  27.  {
  28.    
  29.          $table .= "<tr>\n";
  30.                  $table .= "<td>".$row['user_id']."</td>\n";
  31.                  $table .= "<td>".$row['surname']."</td>\n";
  32.                  $table .= "<td>".$row['name']."</td>\n";
  33.                  $table .= "<td>".$row['middle_name']."</td>\n";
  34.                  $table .= "<td>".$row['birthday']."</td>\n";
  35.                  $table .= "<td>".$row['user_staff']."</td>\n";
  36.                  $table .= "<td>".$row['user_login']."</td>\n";
  37.                  $table .= "<td>".$row['user_password']."</td>\n";
  38.          $table .= "</tr>\n";
  39.  }
  40.  
  41.  $table .= "</table>\n";
  42.  
  43.  //Выводим заполненную таблицу на экран
  44.  echo $table;
  45. }
  46. else {
  47. echo 'Hello, World';
  48. }
  49.  ?>
  50.  

(Отредактировано автором: 11 Апреля, 2015 - 18:57:04)

 
 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