2017-02-16 73 views
0

我在WordPress上使用PHP和MySQL數據庫。如何創建一個提交按鈕,顯示基於從下拉列表中選擇的輸入的結果

我在表中創建了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

其中是開放<?你的代碼中的get_footer()函數之前的PHP代碼? –

+0

我的錯誤,我忘了添加在我的問題,但它存在於代碼 –

0

此代碼僅限於PHP,但您也可以使用javascript/jquery提交表單。無論如何,點擊提交按鈕,我想給你兩個選擇。

  1. 你可以把你所有的下拉表單中,以標籤和形式的操作屬性的表單標籤,你可以定義新的頁面,在這裏你可以得到由$ _REQUEST所有值或得到或交和比任何提交這個數據到數據庫,如果你想要或通過攜帶這個數據數組重定向到另一個頁面。

  2. 你可以編寫一個簡單的jquery/javascript代碼,用ajax提交代碼。我不會寫代碼,但如果你需要,讓我知道我會給你更多的簡要說明。

如果你不想提交的數據和提交按鈕的點擊想要在表格中顯示選定的數據。然後創建一個你想要顯示數據並使用css隱藏的表格。之後,通過使用javascript/jquery獲取選定的索引/下拉列表的值,並將它們顯示在該網格或表格中。

希望它會有所幫助。

+0

這兩個選項有什麼區別?而且我不想在同一頁面下拉列表下方的新頁面中顯示結果。 –

+0

太好了。然後它可以通過一個非常簡單的JavaScript/jQuery代碼來完成。 –

+0

告訴我你知道jQuery,如果是的話點擊按鈕事件獲取表格內所有選擇框的值,然後在新創建的表格中顯示它們,我已經通過使用css讓它隱藏起來。 –

相關問題