2016-08-11 2 views
0

私は、既存のデータベースからいくつかのドロップダウンデータを取得するフォームを持っています。私は別のDBからより詳細な情報を得るために最初に参照する2番目のドロップダウンに取り組んでいますが、私のコードはどこかで壊れているようです。最初のドロップダウンには値が表示されますが、「管理者」を選択すると「サイト」ドロップダウンが空白になり、「サイトの選択」オプションが失われます。動的依存ドロップダウン

ご協力いただければ幸いです。コメントでの議論を1として

<script src="https://code.jquery.com/jquery-2.1.1.min.js" type="text/javascript"></script> 
    <script> 
    function getSite(val) { 
     $.ajax({ 
     type: "POST", 
     url:"get_site.php", 
     data:'manager_id='+val, 
     success: function(data){ 
      $("#site-list").html(data); 
     } 
     }); 
    } 
    </script> 

HTML/PHP

Manager<br/> 
<select name="manager_id" onChange="getSite(this.value);"> 
<option value="">Select Manager</option> 
<?php 
$results = mysql_query("SELECT * FROM _managers"); 
while ($row_unit = mysql_fetch_array($results)){ 
?> 
<option value="<?php echo $row_unit["id"]; ?>"><?php echo $row_unit["company"]; ?></option> 
<?php 
} 
?> 
</select> 
<br/><br/> 
     Site<br/> 
<select name="site_id" id="site-list"> 
<option value="">Select Site</option> 
</select> 

get_site.php

<?php 
include('includes/connect-db.php'); 

if(!empty($_POST["manager_id"])) { 
    $manager_id = $_POST["manager_id"]; 
    $results = mysql_query("SELECT * FROM _sites WHERE manager_id = $manager_id"); 
?> 
    <option value="">Select Site</option> 
<?php 
    while ($row_site = mysql_fetch_array($results)){ 
?> 
    <option value="<?php echo $row_site["id"]; ?>"><?php echo $row_site["site_name"]; ?></option> 
<?php 
    } 
} 
?> 
+0

'$("#site-list ")。append(data);' – Saurabh

+0

help @Saurabhに感謝します。私は調整を行ったが、まだ "get_site.php"ファイルから自分の値を取得していない。現在、「サイトの選択」はサイトのドロップダウンに残りますが。 – JasonH

+0

ループ内でエコーしているので、すべてのデータを配列に入れ、その変数をエコーし​​ます。私は個人的に 'json_encode'を使ってエコーを好む – Saurabh

答えて

0

私は調整を行いましたが、まだ "get_site.php"ファイルから自分の値を取得していません。現在、「サイトの選択」は、サイト のドロップダウンにとどまりますが。

MySQLサーバーから適切なデータが取得されていると仮定すると、get_site.phpにいくつか変更が加えられます。上記のコード

get_site.php

<? 
include 'includes/connect-db.php'; 

if ((!empty($_POST["manager_id"])) && (isset($_POST["manager_id"]))) 
{ 
    $manager_id = $_POST["manager_id"]; 
    $results = mysql_query("SELECT * FROM _sites WHERE manager_id = '{$manager_id}'"); 
    $options = "<option value=''>Select Site</option>"; 
    while ($row_site = mysql_fetch_assoc($results)) 
    { 
     $options .= "<option value='{$row_site['id']}''>{$row_site['site_name']}</option>"; 
    } 
    return $options; // I personally prefer to echo using json_encode and decode it in jQuery 
} 
?> 

あなたが望むデータを与える必要があります。 これはあなたの問題を解決することを願っています。何か問題がある場合はコメントしてください。

関連する問題