2017-03-02 23 views
0

私のコードがなぜ機能しないのかわかりません。私は基本的に2つのドロップダウンを持っています。最初はmssqlデータベースから取り込まれ、最初の選択に依存して2番目のドロップダウンを更新します。私は、次のを持っている2番目のドロップダウンボックスの私の2番目のドロップダウンリストを更新するのはなぜですか?

<p>Select a Region 
<select name ="region" id ="region"> 
<option value ="">Select Region</option> 
<?php echo loadRegion(); ?> 
</select></p> 

<?php 
session_start(); 
$serverName = "REDACTED"; 
$connectionInfo = array("Database"=>"REDACTED", "UID"=>"REDACTED", "PWD"=>"REDACTED"); 
$conn = sqlsrv_connect($serverName, $connectionInfo); 

if (!isset($_SESSION['nID'])) 
{ 
    header("Location: Login.php"); 
    die(); 
} 

function loadRegion() 
{ 
    include 'config.php'; 
    $output = ''; 
    $regionQuery = 'select distinct id, region from regionsHaiss order by id'; 
    $regionPopulate = sqlsrv_query($conn, $regionQuery, array(), array("Scrollable" => SQLSRV_CURSOR_KEYSET)); 
    while($row = sqlsrv_fetch_array($regionPopulate)) 
    { 
     $output .= "<option value=\"".htmlspecialchars($row['ID'])."\">".$row['region']."</option>"; 
    } 
    return $output; 
} 
?> 

は、私は、最初のドロップダウンを移入するためにこれを使用します。

以下

は、ドロップダウンボックスを移入する私のコードです
<p>Select a Territory 
<select name="territory" id="territory"> 
<option value="">Select Territory</option> 
</select></p> 

私は私のajax経由で電話します:

次のように
<script> 
$(document).ready(function(){ 
    alert("ready"); 
    $('#region').change(function(){ 
     var region_id = $(this).val(); 
     $.ajax({ 
      url:"getter.php", 
      method:"POST", 
      data:{regionId:region_id}, 
      dataType:"text", 
      success:function(data){ 
       $('#territory').html(data); 
      } 
     }); 
    }); 
}); 
</script> 

マイゲッターページが読み込ま:

<?php 
session_start(); 
include 'config.php'; 

$output = ''; 
$sql = "SELECT distinct id,territory,rid FROM territoriesHaiss where RID = '".$_POST["regionId"]."' order by id"; 
$result = sqlsrv_query($conn, $sql, array(), array("Scrollable" => SQLSRV_CURSOR_KEYSET)); 
$output = '<option value ="">Select Territory</option>'; 

while($row = sqlsrv_fetch_array($result)) 
    { 
     $output .= "<option value=\"".htmlspecialchars($row['ID'])."\">".$row['territory']."</option>"; 
    } 

echo $output; 

?> 
+1

これは基本的に私には正しいと思われます。 Javascriptコンソールにエラーがありますか?ネットワークタブを見ると、それがAJAX呼び出しをしているのを見て、応答が正しいかどうか?これらはすべてここに投稿する前に取るべき基本的なデバッグステップです。 – Barmar

+1

'$' ['ID'] 'は' $ row ['id'] 'でなければなりません。これは' SELECT'リストの小文字の列名を使うからです。 – Barmar

+0

私はこれらの言語で通常はコード化しないので、実際にこれを効果的にデバッグする方法はわかりません。 AJAXコールが正しく行われているかどうかを確認するにはどうすればいいですか? – Cypher236

答えて

0

としては、上記2つのコメントで指摘エラーが最初のドロップダウンを移入するコードにあった(助けをもう一度感謝!)。次のように、小文字の「ID」であったはずです。

function loadRegion() 
{ 
    include 'config.php'; 
    $output = ''; 
    $regionQuery = 'select distinct id, region from regionsHaiss order by id'; 
    $regionPopulate = sqlsrv_query($conn, $regionQuery, array(), array("Scrollable" => SQLSRV_CURSOR_KEYSET)); 
    while($row = sqlsrv_fetch_array($regionPopulate)) 
    { 
     $output .= "<option value=\"".htmlspecialchars($row['id'])."\">".$row['region']."</option>"; 
    } 
    return $output; 
} 
?> 
関連する問題