2017-02-16 39 views
0

Я использую базу данных PHP и MySQL на WordPress.Как создать кнопку отправки, отображающую результат на основе выбранных входов из выпадающего списка

Я создал 4 раскрывающегося списка в таблице, где каждый из них содержит данные, полученные из базы данных, и я создал кнопку отправки.

Мне нужно, чтобы кнопка отправки выбрала выбранный вход из каждого раскрывающегося списка и сделала запрос, чтобы вернуть требуемые данные и отобразить результаты в таблице или сетке.

код:

 <?php 
    /* 
    Template Name: search info 
    */ 

    get_header(); 
    ?> 

    <?php 
    // code for submit button ation 
    if(isset($_POST['submit'])) 
    { 
    //needed code 
    $site_name=$_POST['site_name']; 
    $owner_name=$_POST['owner_name']; 
    $company_name=$_POST['Company_name']; 
    $Subcontractor_name=$_POST['Subcontractor_name']; 
    ?> 
    <table width="30%" > 
     <tr> 
      <td>Site Name</td> 
      <td>Owner Name</td> 
      <td>Company Name</td> 
      <td>Subcontractor Name</td> 
     </tr> 
     <tr> 
      <td><?php echo $site_name ; ?></td> 
      <td><?php echo $owner_name ; ?></td> 
      <td><?php echo $company_name ; ?></td> 
      <td><?php echo $Subcontractor_name ; ?></td> 
     </tr> 
    </table> 
    <?php } ?> 

    <!--create dropdown list site names--> 

    <form method = "POST" action = ''> 
     <table width="30%"> 
      <tr> 
       <td>Site Name</td> 
       <td>Owner Name</td> 
       <td>Company Name</td> 
       <td>Subcontractor Name</td> 
      </tr> 
      <tr> 
       <td><select id="site_name" name = 'site_name'> 

       <?php 
        $query_site_name =$wpdb->get_results ("select DISTINCT siteNAME from site_info"); 
         foreach($query_site_name as $site_name) 
         { 
         $site_name = (array)$site_name; 
         echo "<option value = '{".$site_name ['siteNAME']."}'>". $site_name['siteNAME']."</option>"; 
         } 
       ?> 

       <!--create dropdown list owner names--> 
       </select></td> 

       <td><select id="owner_name" name = 'owner_name'> 
       <?php 
         $query_owner_name =$wpdb->get_results ("select DISTINCT ownerNAME from owner_info"); 
         foreach($query_owner_name as $owner_name) 
         { 
         $owner_name = (array)$owner_name; 
         echo "<option value = '{".$owner_name ['ownerNAME']."}'>". $owner_name['ownerNAME']."</option>"; 
         } 
        ?> 
       </select></td> 

       <!--create dropdown list Company names--> 
       </select></td> 

       <td><select id="Company_name" name = 'Company_name'> 
       <?php 
        $query_Company_name =$wpdb->get_results ("select DISTINCT companyNAME from company_info"); 
        foreach($query_Company_name as $Company_name) 
        { 
         $Company_name = (array)$Company_name; 
         echo "<option value = '{".$Company_name ['companyNAME']."}'>". $Company_name['companyNAME']."</option>"; 
        } 
       ?> 
       </select></td> 

       <!--create dropdown list Subcontractor names--> 
       </select></td> 

       <td><select id="Subcontractor_name" name = 'Subcontractor_name'> 
       <?php 
        $query_Subcontractor_name =$wpdb->get_results ("select DISTINCT subcontractorNAME from subcontractor_info"); 
        foreach($query_Subcontractor_name as $Subcontractor_name) 
        { 
         $Subcontractor_name = (array)$Subcontractor_name; 
         echo "<option value = '{".$Subcontractor_name ['subcontractorNAME']."}'>". $Subcontractor_name['subcontractorNAME']."</option>"; 
         } 
        ?> 
       </select></td> 
      <tr> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td> 
      <input type = "submit" name="submit" value = "Search"> 

     </td> 
     </tr> 

     </table> 
    </form> 
<?php 
    get_footer(); 
    ?> 

Если кто-то может помочь мне продолжить код для того, чтобы:

  • использовать выбранные данные из выпадающего списка в коде PHP
  • отображения результата в таблице или сетке

После обновления кода страница выглядит так: web page based on the @Prateek Verma code

ответ

0

Пожалуйста, разместите структуру таблицы внутри тега &, затем выполните действие отправки.

Пожалуйста, найти свой обновленный код ниже:

<?php 
    /* 
    Template Name: search info 
    */ 

    get_header(); 
    ?> 

    <?php 
    // code for submit button ation 
    global $wpdb,$_POST; 
    if(isset($_POST['query_submit'])) 
    { 
    //needed code 
    if(isset($_POST['site_name'])) { $site_name=$_POST['site_name']; } else { $site_name=""; } 
if(isset($_POST['owner_name'])) { $owner_name=$_POST['owner_name']; } else { $owner_name=""; } 
if(isset($_POST['Company_name'])) { $company_name=$_POST['Company_name']; } else { $company_name=""; } 
if(isset($_POST['Subcontractor_name'])) { $Subcontractor_name=$_POST['Subcontractor_name']; } else { $Subcontractor_name=""; } 
    ?> 
    <table width="30%" > 
     <tr> 
      <td>Site Name</td> 
      <td>Owner Name</td> 
      <td>Company Name</td> 
      <td>Subcontractor Name</td> 
     </tr> 
     <tr> 
      <td><?php echo $site_name ; ?></td> 
      <td><?php echo $owner_name ; ?></td> 
      <td><?php echo $company_name ; ?></td> 
      <td><?php echo $Subcontractor_name ; ?></td> 
     </tr> 
    </table> 
    <?php } ?> 

    <!--create dropdown list site names--> 

    <form method ="post" action ="" name="submit_form"> 
     <table width="30%"> 
      <tr> 
       <td>Site Name</td> 
       <td>Owner Name</td> 
       <td>Company Name</td> 
       <td>Subcontractor Name</td> 
      </tr> 
      <tr> 
       <td><select id="site_name" name = "site_name"> 

       <?php 
        $query_site_name =$wpdb->get_results ("select DISTINCT siteNAME from site_info"); 
         foreach($query_site_name as $site_name) 
         { 
         $site_name = (array)$site_name; 
         echo "<option value = '{".$site_name ['siteNAME']."}'>". $site_name['siteNAME']."</option>"; 
         } 
       ?> 

       <!--create dropdown list owner names--> 
       </select></td> 

       <td><select id="owner_name" name ="owner_name"> 
       <?php 
         $query_owner_name =$wpdb->get_results ("select DISTINCT ownerNAME from owner_info"); 
         foreach($query_owner_name as $owner_name) 
         { 
         $owner_name = (array)$owner_name; 
         echo "<option value = '{".$owner_name ['ownerNAME']."}'>". $owner_name['ownerNAME']."</option>"; 
         } 
        ?> 
       </select></td> 

       <!--create dropdown list Company names--> 
       </select></td> 

       <td><select id="Company_name" name ="Company_name"> 
       <?php 
        $query_Company_name =$wpdb->get_results ("select DISTINCT companyNAME from company_info"); 
        foreach($query_Company_name as $Company_name) 
        { 
         $Company_name = (array)$Company_name; 
         echo "<option value = '{".$Company_name ['companyNAME']."}'>". $Company_name['companyNAME']."</option>"; 
        } 
       ?> 
       </select></td> 

       <!--create dropdown list Subcontractor names--> 
       </select></td> 

       <td><select id="Subcontractor_name" name ="Subcontractor_name"> 
       <?php 
        $query_Subcontractor_name =$wpdb->get_results ("select DISTINCT subcontractorNAME from subcontractor_info"); 
        foreach($query_Subcontractor_name as $Subcontractor_name) 
        { 
         $Subcontractor_name = (array)$Subcontractor_name; 
         echo "<option value = '{".$Subcontractor_name ['subcontractorNAME']."}'>". $Subcontractor_name['subcontractorNAME']."</option>"; 
         } 
        ?> 
       </select></td> 
      <tr> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td> 
      <input type ="submit" name="query_submit" value ="Search" /> 

     </td> 
     </tr> 

     </table> 
    </form> 

    <?php get_footer(); ?> 

Надежда, это может быть полезно вам.

+0

после того, как я использовал ваш код, вот как выглядит страница ... посмотрите мой обновленный вопрос –

+0

где находится открытие

+0

моя ошибка, которую я забыл добавить в свой вопрос, но он существует в коде –

0

Этот код используется только на PHP, но вы можете использовать javascript/jquery также для отправки формы. В любом случае При нажатии кнопки отправки я хотел бы дать вам два варианта.

  1. Вы можете поместить все ваше выпадающее меню в виде тег и для этого тега формы в атрибуте действия формы вы можете определить новую страницу, где вы можете получить все значения от $ _REQUEST или получить или должность и чем либо представить эти данные в базу данных, если вы хотите или перенаправить на другую страницу, перенося этот массив данных.

  2. Вы можете написать простой код jquery/javascript для отправки кода с помощью ajax. Я не собираюсь писать код, но если вам нужно, сообщите мне, я расскажу вам более подробно об этом.

Если вы не хотите отправлять данные, а по нажатию кнопки отправки хотите отобразить выбранные данные в таблице. Затем создайте таблицу, в которой вы хотите отображать данные, и спрятать их с помощью css. После этого, используя javascript/jquery, вы можете выбрать индекс/значение раскрывающегося списка и показать их в этой таблице или таблице.

Надеюсь, это поможет.

+0

Какая разница между двумя вариантами? и я не хочу отображать результат на новой странице чуть ниже выпадающих списков на той же странице. –

+0

Отлично. Тогда это можно сделать с помощью очень простого кода javascript/jquery. –

+0

Скажите, что вы знаете jQuery, если да, то нажатие кнопки кнопки получает значение всего окна выбора внутри таблицы, а затем показывает их во вновь созданной таблице, что я уже сказал вам сделать ее скрытой с помощью css. –