2017-06-22 27 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

相关问题