Форум программистов, компьютерный форум, киберфорум
Наши страницы

PHP для начинающих

Войти
Регистрация
Восстановить пароль
 
 
kikaa
0 / 0 / 0
Регистрация: 24.04.2017
Сообщений: 109
#1

Вывод данных из БД без перезагрузки страницы - PHP

13.03.2018, 17:07. Просмотров 421. Ответов 19
Метки нет (Все метки)

Здравствуйте,помогите пожалуйста сделать вывод результата поиска в форму(rezultat) без перехода на новую страницу и перезагрузки.
Форма для поиска:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<form id="form_1" action="search.php" method="post">
                  <div class="radio">
                    <div class="wrapper">
               <div class="area"> Поиск билетов </div>
                      </div>
                  </div> 
            
                <div> <span class="left">Откуда:</span>
                   <input id="otkuda" type="text" name="otkuda" class="input"  autofocus required /> 
                    </div>
                 
                  <div> <span class="left">Куда:</span>
                    <input id="kuda" type="text" name="kuda" class="input" autofocus required  />
                  </div>
                  <div> <span class="left">Дата:</span>
                    <input id="data" type="date" name="data"  max="2020-01-01" min="2018-02-15" class="input" autofocus required  />
                 </div>
                  <div class="poz">
                  <input type="submit" id="submit" value="ИСКАТЬ БИЛЕТЫ" disabled name="submit" class="knopka2"/>
                 </div>
                  <a href="contacts.html" class="link1" class="center">Как купить билет</a> 
              </form>
Форма для вывода:
HTML5
1
2
3
4
5
6
7
8
9
10
11
<form id="rezultat">
    
    <div class="wrapper pad1">
      <article class="col1">
        <div class="box1">
          <h2 class="top">Rezultat</h2>
          <div class="pad"> <strong>zdes' tablica</strong><br>
            <ul class="pad_bot1 list1">
            </div>
            
            </form>
Запрос для поиска,который находится сейчас в search.php:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php       
$dbc = mysqli_connect('localhost', 'root', '', 'db1')
    or die('Ошибка подключения к БД');
 
  $otkuda = $_POST['otkuda'];
  $kuda = $_POST['kuda'];
  $data = $_POST['data'];
  $nomer_poezda = $_POST['nomer_poezda'];
  $Otpravlenie = $_POST['Otpravlenie'];
  $pribitie = $_POST['pribitie'];
  $marshrut = $_POST['marshrut'];
  $id_poezda = $_GET['id_poezda'];
  
     
  echo 'По  запросу:  '; echo 'От станции: ' . $otkuda; echo '; До станции: ' . $kuda; echo '; На дату: ' . $data; echo '; ';
$query=("select * from `table1` WHERE (`otkuda`= '$otkuda') and (`kuda`= '$kuda') and (`data`='$data')");
$result = mysqli_query($dbc, $query)
    or die('Ошибка выполнения запроса.');
 
     $row_cnt = mysqli_num_rows($result);
printf("Найдено: %d запись(си).\n", $row_cnt);
 
  mysqli_close($dbc);
 
 $myrow=mysqli_fetch_array($result);
echo "<table class='table_blur' width='100%'></td> <th>Номер поезда</th> <th>Маршрут</th>
     <th>Прибытие</th> <th>Отправление</th><th>Билетов</th><th>Выбрать вагон</th></tr> ";
     do 
     {
         echo "<tr> <td>".$myrow['nomer_poezda']."</td>";
         echo "<td >".$myrow['marshrut']."</td>";
         echo "<td>".$myrow['pribitie']."</td>";
         echo "<td>".$myrow['Otpravlenie']."</td>";
         echo "<td>".$myrow['']."</td>";
         echo "<td>".'<a class="knopka1" href = "searchh.php?id_poezda=' .$myrow['id_poezda'].' ">Выбрать вагон</a><input name="id_poezda" type="hidden" value=' .$myrow['id_poezda'].' id="id_poezda">'."</td> </tr>";
        
     }
     while($myrow=mysqli_fetch_array($result));
     
     echo "</table>" 
    
?>
0
Миниатюры
Вывод данных из БД без перезагрузки страницы  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2018, 17:07
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Вывод данных из БД без перезагрузки страницы (PHP):

Вывод обновленной сессии без перезагрузки страницы - PHP
Добрый день! Пишу авторизацию/регистрацию на ajax/php и столкнулся с проблемой. Нигде не могу найти решения. Отправляю ajax-запрос на...

Обработка данных без перезагрузки страницы - PHP
всем привет! есть страница, которая состоит из 3х блоков: 1. таблица (выводится всегда) 2. кнопка, которая приобретает значение...

Как сделать постраничный вывод данных без перезагрузки? - PHP
Доброго времени суток! Пытаюсь организовать постраничный вывод комментариев из базы без перезагрузки с помощью ajax но что то запутался, ...

Переделываь часть страницы без перезагрузки страницы - PHP
И так у меня есть код &lt;?php $file = &quot;./toolbar.php&quot;; $contents = file($file); $string = implode($contents); echo $string; ...

Исполнение PHP-скрипта без перезагрузки страницы и без знания JavaScript(!) - Xajax - PHP
Приветствую! Решил запостить отдельной темой, а в прилепленной (про Ajax) просто разместить на нее ссылку. Так будет структурно правильнее,...

Пример простейшего калькулятора на PHP без перезагрузки страницы (чистый Ajax, без jQuery и других библиотек) - PHP
Привет. Это, в каком-то смысле, продолжение креатива http://www.cyberforum.ru/php-beginners/thread1889429.html но здесь я решил не...

19
FloppyDisc
Особый статус
150 / 151 / 73
Регистрация: 18.11.2015
Сообщений: 868
13.03.2018, 17:49 #2
Например AJAX(jQuery)

Javascript
1
2
3
4
5
6
7
8
9
10
$('#submit').clisck(function(){
   $.ajax({ 
         type: "POST",
         url: "search.php",
         data: ('#form_1').serialize(),
         success: function(response) {
            $('#zdes_tablica_result_div').html(response);
         }
   })
});
Добавлено через 1 минуту
из формы уберите action="search.php", а из кнопки type="submit" сделайте type="button"
0
kikaa
0 / 0 / 0
Регистрация: 24.04.2017
Сообщений: 109
13.03.2018, 19:38  [ТС] #3
Кнопка не реагирует,вроде сделал как написали.
Javascript
1
2
3
4
5
6
7
8
9
10
$('#submit').clisck(function(){
   $.ajax({ 
         type: "POST",
         url: "search.php",
         data: ('#form_1').serialize(),
         success: function(response) {
            $('#tablica1').html(response);
         }
   })
});
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<form id="form_1" method="post">
                  <div class="radio">
                    <div class="wrapper">
               <div class="area"> Поиск билетов </div>
                      </div>
                  </div> 
            
                <div> <span class="left">Откуда:</span>
                   <input id="otkuda" type="text" name="otkuda" class="input"  autofocus required /> 
                    </div>
                 
                  <div> <span class="left">Куда:</span>
                    <input id="kuda" type="text" name="kuda" class="input" autofocus required  />
                  </div>
                  <div> <span class="left">Дата:</span>
                    <input id="data" type="date" name="data"  max="2020-01-01" min="2018-02-15" class="input" autofocus required  />
                 </div>
                  <div class="poz">
                  <input type="button" id="submit" value="ИСКАТЬ БИЛЕТЫ" disabled name="submit" class="knopka2"/>
                 </div>
                  <a href="contacts.html" class="link1" class="center">Как купить билет</a> 
              </form>
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php       
$dbc = mysqli_connect('localhost', 'root', '', 'db1')
    or die('Ошибка подключения к БД');
 
  $otkuda = $_POST['otkuda'];
  $kuda = $_POST['kuda'];
  $data = $_POST['data'];
  $nomer_poezda = $_POST['nomer_poezda'];
  $Otpravlenie = $_POST['Otpravlenie'];
  $pribitie = $_POST['pribitie'];
  $marshrut = $_POST['marshrut'];
  $id_poezda = $_GET['id_poezda'];
  
     
  echo 'По  запросу:  '; echo 'От станции: ' . $otkuda; echo '; До станции: ' . $kuda; echo '; На дату: ' . $data; echo '; ';
$query=("select * from `table1` WHERE (`otkuda`= '$otkuda') and (`kuda`= '$kuda') and (`data`='$data')");
$result = mysqli_query($dbc, $query)
    or die('Ошибка выполнения запроса.');
 
     $row_cnt = mysqli_num_rows($result);
printf("Найдено: %d запись(си).\n", $row_cnt);
 
  mysqli_close($dbc);
 
 $myrow=mysqli_fetch_array($result);
echo "<table name='tablica1' class='table_blur' width='100%'></td> <th>Номер поезда</th> <th>Маршрут</th>
     <th>Прибытие</th> <th>Отправление</th><th>Билетов</th><th>Выбрать вагон</th></tr> ";
     do 
     {
         echo "<tr> <td>".$myrow['nomer_poezda']."</td>";
         echo "<td >".$myrow['marshrut']."</td>";
         echo "<td>".$myrow['pribitie']."</td>";
         echo "<td>".$myrow['Otpravlenie']."</td>";
         echo "<td>".$myrow['']."</td>";
         echo "<td>".'<a class="knopka1" href = "searchh.php?id_poezda=' .$myrow['id_poezda'].' ">Выбрать вагон</a><input name="id_poezda" type="hidden" value=' .$myrow['id_poezda'].' id="id_poezda">'."</td> </tr>";
        
     }
     while($myrow=mysqli_fetch_array($result));
     
     echo "</table>" 
    
?>
Вывод:
HTML5
1
<div id="tablica1"><div>
0
FloppyDisc
Особый статус
150 / 151 / 73
Регистрация: 18.11.2015
Сообщений: 868
13.03.2018, 19:44 #4
Сорь, clisck -> click()
0
kikaa
0 / 0 / 0
Регистрация: 24.04.2017
Сообщений: 109
13.03.2018, 19:46  [ТС] #5
Поправил,но всё равно не реагирует
0
FloppyDisc
Особый статус
150 / 151 / 73
Регистрация: 18.11.2015
Сообщений: 868
13.03.2018, 20:34 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Посмотрите в консоль, наверняка у вас не подключен jQuery

подправил, просто смотрите в консоль
Javascript
1
2
3
4
5
6
7
8
9
10
$('#submit').click(function(){
   $.ajax({ 
         type: 'post',
         url: 'search.php',
         data: ('#form_1').serialize(),
         success: function(response) {
            $('#tablica1').html(response);
         }
   });
});
0
kikaa
0 / 0 / 0
Регистрация: 24.04.2017
Сообщений: 109
13.03.2018, 21:00  [ТС] #7
Консоль пуста,вроде всё что нужно подключено

HTML5
1
2
3
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script type="text/javascript" src="js/AJAX.js"></script>
<script type="text/javascript" src="js/jquery-1.5.2.js" ></script>
0
kikaa
0 / 0 / 0
Регистрация: 24.04.2017
Сообщений: 109
14.03.2018, 04:23  [ТС] #8
Здесь ошибка
Javascript
1
data: ('#form_1').serialize(),
Убираю эту строку выводит таблицу,но пустую.
0
Миниатюры
Вывод данных из БД без перезагрузки страницы  
FloppyDisc
Особый статус
150 / 151 / 73
Регистрация: 18.11.2015
Сообщений: 868
14.03.2018, 14:32 #9
Javascript
1
data: $('#form_1').serialize(),
1
kikaa
0 / 0 / 0
Регистрация: 24.04.2017
Сообщений: 109
14.03.2018, 15:17  [ТС] #10
Спасибо большое за помощь,работает.Не подскажите ещё как сделать чтобы при нажатии на другую кнопку данная таблица исчезала, а на месте ее появлялась другая ,по этому же принципу ?
0
FloppyDisc
Особый статус
150 / 151 / 73
Регистрация: 18.11.2015
Сообщений: 868
14.03.2018, 15:58 #11
Примерно так, с таблицами так же по аналогии:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<button id="btn1" class="click">
but 1
</button>
 
<button id="btn2" class="click none">
but 2
</button>
 
<button id="btn3" class="clicks">
but 3
</button>
 
<button id="btn4" class="clicks none">
but 4
</button>
CSS
1
2
3
.none {
  display: none;
}
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$('.click').click(function(){
    $('#btn2').slideToggle('fast');
    $('#btn2').focus();
    
    $('#btn1').slideToggle('fast');
    $('#btn1').focus();
    
    return false;
});
 
$('.clicks').click(function(){
    if($(this).attr('id') == 'btn3'){
    $('#btn4').show();
    $('#btn3').hide();
  } else {
    $('#btn3').show();
    $('#btn4').hide();
  }
  
  return false;
});
1
kikaa
0 / 0 / 0
Регистрация: 24.04.2017
Сообщений: 109
14.03.2018, 21:19  [ТС] #12
Работает только вывод первой таблицы,но в этой таблице тоже есть кнопка:
PHP
1
echo "<td>".'<button type="button" id="button1" class="knopka1" "id_poezda= '.$myrow['id_poezda'].'>Выбрать вагон</button>'."</td> </tr>";
Для неё я делаю аналогичным образом через AJAX(jQuery) вывод второй таблицы,но вывод не работает(кнопке не реагирует),помогите разобраться,в чём проблема,я думаю,что я неправильно пишу сам button ,но по-другому не знаю как,чтобы присвоить всё,что там есть.

Весь код:

Страница с кнопкой:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php       
$dbc = mysqli_connect('localhost', 'root', '', 'db1')
    or die('Ошибка подключения к БД');
 
  $otkuda = $_POST['otkuda'];
  $kuda = $_POST['kuda'];
  $data = $_POST['data'];
  $nomer_poezda = $_POST['nomer_poezda'];
  $Otpravlenie = $_POST['Otpravlenie'];
  $pribitie = $_POST['pribitie'];
  $marshrut = $_POST['marshrut'];
  $id_poezda = $_GET['id_poezda'];
  
     
  echo 'По  запросу:  '; echo 'От станции: ' . $otkuda; echo '; До станции: ' . $kuda; echo '; На дату: ' . $data; echo '; ';
$query=("select * from `table1` WHERE (`otkuda`= '$otkuda') and (`kuda`= '$kuda') and (`data`='$data')");
$result = mysqli_query($dbc, $query)
    or die('Ошибка выполнения запроса.');
 
     $row_cnt = mysqli_num_rows($result);
printf("Найдено: %d запись(си).\n", $row_cnt);
 
  mysqli_close($dbc);
 
 $myrow=mysqli_fetch_array($result);
echo "<table id='table1' class='table_blur' class='click' width='100%'></td> <th>Номер поезда</th> <th>Маршрут</th>
     <th>Прибытие</th> <th>Отправление</th><th>Билетов</th><th>Выбрать вагон</th></tr> ";
     do 
     {
         echo "<tr> <td>".$myrow['nomer_poezda']."</td>";
         echo "<td >".$myrow['marshrut']."</td>";
         echo "<td>".$myrow['pribitie']."</td>";
         echo "<td>".$myrow['Otpravlenie']."</td>";
         echo "<td>".$myrow['']."</td>";
         echo "<td>".'<button type="button" id="button1" class="knopka1" "id_poezda= '.$myrow['id_poezda'].'>Выбрать вагон</button>'."</td> </tr>";
     }
     while($myrow=mysqli_fetch_array($result));
     
     echo "</table>" 
 
?>
Таблица,которую нужно вывести:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php 
            
$dbc = mysqli_connect('localhost', 'root', '', 'db1')
    or die('Ошибка подключения к БД');
 
  $otkuda = $_POST['otkuda'];
  $kuda = $_POST['kuda'];
  $data = $_POST['data'];
  $nomer_poezda = $_POST['nomer_poezda'];
  $Otpravlenie = $_POST['Otpravlenie'];
  $pribitie = $_POST['pribitie'];
  $marshrut = $_POST['marshrut'];
  $id_poezda = $_POST['id_poezda'];
  $nomer_vagona = $_POST['nomer_vagona'];
  $tip_vagona = $_POST['tip_vagona'];
 if (isset($_GET['id_poezda'])) {$id_poezda = $_GET['id_poezda'];}
   
 
$query=("SELECT * FROM table1 LEFT JOIN table2 ON table2.id_poezda = table1.id_poezda WHERE table1.id_poezda=$id_poezda");
$result = mysqli_query($dbc, $query)
    or die('Ошибка выполнения запроса.');
     $row_cnt = mysqli_num_rows($result);
printf("Найдено: %d запись(си).\n", $row_cnt);
 
  mysqli_close($dbc);
 
 $array=mysqli_fetch_array($result);
echo "<table></td> <th>Номер поезда</th> <th>Номер вагона</th>
     <th>Тип вагона</th><th>Количество свободных мест</th><th>Выбрать место</th></tr> ";
     do 
     {
         echo "<tr> <td>".$array['nomer_poezda']."</td>";
         echo "<td>".$array['nomer_vagona']."</td>";
         echo "<td>".$array['tip_vagona']."</td>";
         echo "<td>".$array['']."</td>";
         echo "<td>".'<input type="submit" value="Выбрать место">'."</td> </tr>";
         
     }
     while($array=mysqli_fetch_array($result));
     echo "</table>" 
?>
AJAX:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
$(function() {
 $("#button1").click(function() { 
  $.ajax({
     type: "POST",
     url: 'searchh.php',
     data: $('#form_1').serialize(),
     success: function(response){
       $('#tablica2').html(response);
     },
    
  });
 });
});
0
FloppyDisc
Особый статус
150 / 151 / 73
Регистрация: 18.11.2015
Сообщений: 868
14.03.2018, 22:25 #13
Я правильно понимаю, что у каждого поезда можно выбирать вагоны, т.е кнопока не одна единственная? Если так, то идентификаторы не очень помогут, лучше сделать событие связанное по нажатию на элемент с определенным классом:

Javascript
1
$('.myCustomClassSelector').click(function(){...});
И если там только одна кнопочка, то никакая сериализация формы вроде и не нужна или я не понимаю? Нужен лишь идентификатор поезда, тогда:
PHPHTML
1
<button type="button" id="button<?= $myrow['id_poezda']; ?>" class="knopka1" data-poezd="<?= $myrow['id_poezda']; ?>">Выбрать вагон</button>
Javascript
1
2
3
4
5
6
7
8
9
10
$('.knopka1').click(function(){
  $.ajax({
     type: "POST",
     url: 'searchh.php',
     data: {poezd_id: $(this).data('poezd')}, //.attr('data-poezd')
     success: function(response){
       $('#tablica2').html(response);
     },
  });
});
PHP
1
2
3
$_POST['poezd_id'];
 
if (isset($_GET['id_poezda'])) {$id_poezda = $_GET['id_poezda'];} // придется поменять, т.к идет POST запрос, либо тут на пост либо на стороне клиента на GET
0
kikaa
0 / 0 / 0
Регистрация: 24.04.2017
Сообщений: 109
15.03.2018, 04:51  [ТС] #14
У каждого поезда ,можно выбирать вагоны ,немного не понимаю как это сделать ,можно чуть подробней о
Javascript
1
2
.
$('.myCustomClassSelector').click(function(){...});
0
FloppyDisc
Особый статус
150 / 151 / 73
Регистрация: 18.11.2015
Сообщений: 868
15.03.2018, 12:24 #15
Я же потом привел пример на вашем примере, простите за тавтологию

Javascript
1
$('.myCustomClassSelector').click(function(){...});
Это означает срабатывает событие по клику на элемент с классом <button class="myCustomClassSelector">btn</button>
Цитата Сообщение от kikaa Посмотреть сообщение
У каждого поезда ,можно выбирать вагоны
Я об это же и говорил, т.е вам нужно по нажатию "выбрать вагоны" любого поезда появилась таблица в указанном месте с вагонами? Или как?
Вот
Javascript
1
2
3
4
5
6
7
8
9
10
$('.knopka1').click(function(){
  $.ajax({
     type: "POST",
     url: 'searchh.php',
     data: {poezd_id: $(this).data('poezd')}, //.attr('data-poezd')
     success: function(response){
       $('#tablica2').html(response);
     },
  });
});
по клику на кнопку "выбратьт вагоны" отправится запрос на сервер, там можно получить идентификатор поезда:
PHP
1
$_POST['poezd_id']; // тут айди поезда
Добавлено через 1 минуту
Нужно лишь подправить кнопку, добавив дополнительный атрибут data-poezd
PHPHTML
1
<button type="button" id="button<?= $myrow['id_poezda']; ?>" class="knopka1" data-poezd="<?= $myrow['id_poezda']; ?>">Выбрать вагон</button>
0
15.03.2018, 12:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2018, 12:24
Привет! Вот еще темы с ответами:

Вывод данных из БД на сайт без обновления страницы - PHP
Здравствуйте. Описываю ситуацию образно. У меня есть база данных. На сайте есть поле: &lt;div&gt;&lt;p class=&quot;user_name&quot;&gt;Ник: &lt;span...

Отправка данных без перезагрузки страницы - PHP
как сделать отправку данных с формы ,без перезагрузки страницы,знаю это делаетсся на айасе,но как??????????? &lt;? $mes = '&lt;html&gt; ...

Переключение без перезагрузки страницы - PHP
Здравствуйте! Страница на php. В ней выводится футер шапка, колонка и в теле страницы текст и с помощью php таблица, хотелось бы. чтобы при...

Форма без перезагрузки страницы - PHP
привет всем ))) :bravo: есть форма ))) &lt;?php $result3 = mysql_query(&quot;SELECT * FROM message WHERE pol='$id' LIMIT 1&quot;,$db); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru