2017-06-22 34 views
0

我有一個用PHP和MYSQL編寫的網站,其中包含3個獨立drodpdown列表,其中第一個下拉列表包含了其他2個dorpdown列表所必需的多個值。如何在第二個變量裏面存儲下拉列表中的值

我需要的是也能夠將這些值之一存儲在第二個變量中,以便在其他查詢中單獨使用它。

take a look on the image

代碼

<?php 

      // code for submit button action 
      global $wpdb, $site_name, $data; 
     //variables that handle the retrieved data from mysql database based on the ID of the variable in HTML (select) 



     if(isset($_POST['query_submit'])) 
     { 


      if(isset($_POST['site_name'])) 
       { 
       $site_name=$_POST['site_name']; 

       } 
       else { $site_name=""; } 
    var_dump($site_name); 

/*在上述行添加
後續代碼var_dump顯示器3倍$ SITE_NAME變量內的值是有辦法來修整或SQL查詢之前提取第三值下。 */

$sql = $wpdb->prepare("select i.siteID 
      , i.siteNAME 
      , i.equipmentTYPE 
      , c.latitude 
      , c.longitude 
      , c.height 
      , o.ownerNAME 
      , o.ownerCONTACT 
      , x.companyNAME 
      , y.subcontractorCOMPANY 
      , y.subcontractorNAME 
      , y.subcontractorCONTACT 
      from site_info i 
      LEFT 
      JOIN owner_info o 
      on i.ownerID = o.ownerID 
      LEFT 
      JOIN company_info x 
      on i.companyID = x.companyID 
      LEFT 
      JOIN subcontractor_info y 
      on i.subcontractorID = y.subcontractorID 
      LEFT JOIN site_coordinates2 c 
      on i.siteID=c.siteID 
      where 
      i.siteNAME = %s 
      AND 
      o.ownerNAME = %s 
      AND 
      x.companyNAME = %s 
      ",$site_name,$owner_name,$company_name); 

     $query_submit =$wpdb->get_results($sql, OBJECT); 

代碼
<td><select id="site_name" name = "site_name"> 
    <option value="">Select Site</option> 
<?php 
$query_site_name =$wpdb->get_results("select DISTINCT 
    i.siteNAME, 
    i.ownerID, 
    i.companyID, 
    o.ownerNAME, 
    x.companyNAME 
    from site_info i 
    LEFT 
    JOIN owner_info o 
    on i.ownerID = o.ownerID 
    LEFT 
    JOIN company_info x 
    on i.companyID = x.companyID 
    "); 

    foreach($query_site_name as $row) 
    { 
    //$result1 = $row->ownerID; 
    // $result2 = $row->companyID; 
    echo "<option value = '".$row ->ownerID.",".$row ->companyID.",".$row ->siteNAME."'>".$row->siteNAME."</option>"; 
    // echo "<option value = '".$row ->siteNAME."'>".$row->siteNAME."</option>";   
    } 
?> 
</select></td> 

Ajax代碼

<script type="text/javascript"> 

// make Dropdownlist depend on each other 
$(document).ready(function(){ 


// depend owner name on site name 

    $('#site_name').change(function(){ 
    var arrayId = $(this).val().split(","); 
    if(arrayId != ""){ 
     var ownerID = arrayId[0]; //0 
     var companyID = arrayId[1]; //1 

    $.ajax({ 
     url:"<?php echo get_stylesheet_directory_uri(); ?>/dropdown_fetch_owner.php", 
     method:"POST", 
     data:{ownerID:ownerID,companyID:companyID}, 
     dataType:"text", 
     success:function(data){ 
       var Response = data.split("--"); 
       $('#owner_name').html(Response[2]); 
       $('#Company_name').html(Response[4]); 
     } 
    }); 


    } 


    }); 


}); 

</script> 

dropdown_fetch_owner.php
<?php 

include_once($_SERVER['DOCUMENT_ROOT'].'/wordpress/wp-load.php'); 
global $wpdb,$owner_name,$company_name; 

    $sql =$wpdb->get_results("select ownerID, ownerNAME from owner_info where ownerID = '".$_POST['ownerID']."' ORDER BY ownerNAME"); 
    $owner_name = '--Owner--'; 
    var_dump($sql); 
    foreach($sql as $row){ 


     $owner_name.= "<option value ='".$row ->ownerID."'>".$row->ownerNAME."</option>"; 
    } 
    echo $owner_name; 


    $sql =$wpdb->get_results("select companyID, companyNAME from company_info where companyID = '".$_POST['companyID']."' ORDER BY companyNAME"); 
    $company_name = '--Company--'; 
    var_dump($sql); 


    foreach($sql as $row){ 

    $company_name.= "<option value ='".$row ->companyID."'>".$row->companyNAME."</option>"; 
    } 
    echo $company_name; 
    exit(); 




?> 
+0

您需要存儲之後的第二信息從第一個下拉列表中選擇一個選項? –

+0

@HamzaAbdaoui我需要將** siteNAME **值存儲在一個單獨的變量中,或將其他2個值存儲在一個單獨的變量中,以便能夠在第二個查詢中只使用siteNAME ..我將編輯我的問題並添加一些代碼看看 –

+0

不是'var arrayId = $(this).val()。split(「,」); if(arrayId!=「」){var ownerID = arrayId [0]; // 0 var companyID = arrayId [1]; // 1'做這份工作? –

回答

0

這個怎麼樣:

在你PHP腳本,可以explode站點名稱爲arrayPHP explode() documentation

if(isset($_POST['site_name'])) 
    { 
     $site_name=$_POST['site_name']; 
     $values = explode(",", $site_name); 
     $site_name = $values[0]; //Or whatever cell you want 
    } 
else { $site_name=""; } 

Ëd I T:

正如我之前的sed:

在PHP中,更改此:

echo "<option value = '".$row ->ownerID.",".$row ->companyID.",".$row ->siteNAME."'>".$row->siteNAME."</option>"; 

要:使用此代碼

$('#site_name').change(function(){ 
    var ownerID = $(this).children(":selected").attr("id"); 
    var companyID = $(this).children(":selected").attr("name"); 

,您:

echo "<option id = '".$row ->ownerID."' name = '".$row ->companyID."' value = '".$row ->siteNAME."'>".$row->siteNAME."</option>"; 

而且在阿賈克斯,改變這種:

$('#site_name').change(function(){ 
var arrayId = $(this).val().split(","); 
if(arrayId != ""){ 
    var ownerID = arrayId[0]; //0 
    var companyID = arrayId[1]; //1 

要不會需要我的編輯之前提供的代碼,你需要

更改此:

if(isset($_POST['site_name'])) 
    { 
     $site_name=$_POST['site_name']; 
     $values = explode(",", $site_name); 
     $site_name = $values[0]; //Or whatever cell you want 
    } 
else { $site_name=""; } 

要:

if(isset($_POST['site_name'])) 
    { 
     $site_name=$_POST['site_name']; //It'll contain just what you want ;) 
    } 
else { $site_name=""; } 
+0

這不會解決問題,我不知道我是否不以我的方式解釋我的問題我會編輯問題看一看 –

+0

@Dany 7elo,我希望我終於明白你的需要! –

+0

看看我的問題中的鏈接我會顯示你的答案的結果 –

-1

$( '#OWNER_NAME')。HTML(數據[0 ]。型號); 使用像這樣model_no是數據庫字段名稱的用法。

+0

我不知道你的答案 –

+0

「我沒有得到任何價值的選擇標籤使用這個我嘗試它在我的代碼 – Hemu999

相關問題