@gentroy

Вывод результата GET запроса на той же странице где форма, как реализовать?

Есть два файла

reestr.php c формой
<?php /* Template Name: Реестр */ 

get_header(); ?>

<?php
	if(isset($_REQUEST['org']) && !empty($_REQUEST['org'])) {
?>

<div class="row">
  <div class="col-12 col-md-3">
    <div class="row justify-content-center align-items-center">
      <div class="col">
        <h2 class="color3c3b3b font-weight-bolder ps-3 fs-4 mb-0">Поиск по реестру</h2>
      </div>
    </div>
  </div>
  <div class="col-12 col-md-9 ms-auto text-center">
    <div class="input-group">
      <form class="w-100" id="form_search" method="GET" action="/reestr/"> 
				<div class="input-group">
					<input name="org" type="text" value="" placeholder="Введите данные ИНН" class="form-control rounded-1">
					<button type="submit" class="btn btn-secondary mb-0"><b>ПОИСК</b></button>
				</div>
      </form>
    </div>
  </div>
</div>
<div class="row mt-3">
  <div class="col-12 col-md-5">
    <div class="row justify-content-center align-items-center">
      <div class="col">
        
          <a href="#" class="color2980B9 font-weight-normal fs-6 mb-0 lh-sm">Сведений о поставщике нет в реестре?</a><br>
          <a href="#" class="color2980B9 font-weight-normal fs-6 mb-0 lh-sm">Как подать сведения для внесения в реестр?</a>
        
      </div>
    </div>
  </div>
</div>

<?php 
}
?>

<?php
  while ( have_posts() ) : the_post();
		if(isset($_REQUEST['org'])) if(!empty($_REQUEST['org'])) get_template_part('companies/list');
		the_content();
  endwhile;
?>

<?php
	if(!isset($_REQUEST['org']) || empty($_REQUEST['org'])) {
?>
<div class="container-fluid full-width py-5 mt-7 bgf3f3f3">
<div class="container">
<div class="row">
  <div class="col-12 col-md-3">
    <div class="row justify-content-center align-items-center">
      <div class="col">
        <h2 class="color3c3b3b font-weight-bolder ps-3 fs-4 mb-0">Поиск по реестру</h2>
      </div>
    </div>
  </div>
  <div class="col-12 col-md-9 ms-auto text-center">
    <div class="input-group">
      <form class="w-100" id="form_search" method="GET" action="/reestr/"> 
				<div class="input-group">
					<input name="org" type="text" value="" placeholder="Введите данные ИНН" class="form-control rounded-1">
					<button type="submit" class="btn btn-secondary mb-0"><b>ПОИСК</b></button>
				</div>
      </form>
    </div>
  </div>
</div>
<div class="row mt-3">
  <div class="col-12 col-md-5">
    <div class="row justify-content-center align-items-center">
      <div class="col">
        
          <a href="#" class="color2980B9 font-weight-normal fs-6 mb-0 lh-sm">Сведений о поставщике нет в реестре?</a><br>
          <a href="#" class="color2980B9 font-weight-normal fs-6 mb-0 lh-sm">Как подать сведения для внесения в реестр?</a>
        
      </div>
    </div>
  </div>
  <div class="col-12 col-md-7 text-end">
    
  </div>
</div>
</div></div>
<?php 
}
?>

<?php //get_sidebar(); ?>

<?php get_footer(); ?>


и list.php с обработкой:
<div class="row mb-5">
	<div class="col-xs-12">
<div class="table-responsive mb-3">
  <table class="table accred text-center">
    <thead>
      <tr>
				<th>Наименование</th>
				<th>ИНН</th>
				<th>Регион</th>
				<th>Город</th>
				<!-- <th>№ Сертификата</th> -->
      </tr>
		</thead>
    <tbody>
<?php 
if($_REQUEST['org']=='all') {
	$org_args = array(
    'post_type' => 'organizations',
    'posts_per_page' => 50,
	);
}else{
	$org_args = array(
    'post_type' => 'organizations',
    'posts_per_page' => 1,
		'meta_query' => array(
			//'relation' => 'OR',
			array(
				'key'		  => 'inn',
				'value'	  => $_REQUEST['org'],
				'compare' => '='
			),
			
		)
	);
}
// Query the posts:
$org_query = new WP_Query($org_args);
$count=0;
if($org_query->have_posts()) { 
while ($org_query->have_posts()) : $org_query->the_post(); $id = get_the_ID(); $count++;?> 
	<tr>
		<td class="text-left" style="white-space:normal;"><?php echo stripcslashes(str_replace(' \&#187;', ' «', get_the_title()));?></td>
		<td><?php the_field('inn');?></td>
		<td style="white-space:normal;"><?php the_field('region');?></td>
		<td><?php the_field('city');?></td>
		<td><?php the_field('sert');?></td>
	</tr>
<?    
endwhile;
}
wp_reset_postdata();?>
		</tbody>
  </table>
</div>
	</div>
	<div class="col-xs-12 order-first">
	<p class="d-flex justify-content-start align-items-start color2980B9 lh-sm mt-4 mb-4"> 
    <span class="font-weight-bolder text-uppercase">
    ПО ВАШЕМУ ЗАПРОСУ НАЙДЕНО ЗАПИСЕЙ: <?php echo $count;?>
    </span>
  </p>
	</div>
</div>


при нажатии кнопки "поиск" идет переадресация на другую страницу типа /reestr/?org='текст запроса'

а как реализовать вывод результата на той же странице, с которой идет запрос?
  • Вопрос задан
  • 97 просмотров
Пригласить эксперта
Ответы на вопрос 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Сотрите в <form> параметр action, или сделайте его пустым. Тогда GET-запрос придёт на тот-же URL, на котором отображается форма. И прийдётся делать обработку запроса в самом генераторе формы.

Ну или AJAX, но это сложнее.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы