2016-07-22 2 views
1

タイトルは私の目標です。私は最初のタグの変更時に2番目の選択タグの値を変更しようとしています。ここで私が試したことがあります。値はデータベースから取得されます。これはいくつかのPHPの選択を必要とします。<select>タグの最初の値を変更した後に値を変更する<select>

<div class="row"> 
     <div class="col-md-5"> 
     <label for="project">From Project</label> 
     <select class="form-control"id="project"onchange="dropDrown(this.value)" name="project"> 
     <?php 
     $sql = $db->prepare("SELECT * FROM tbl_project WHERE projectStatus = 1"); 
     $sql->execute(); 
     while($result=$sql->fetch(PDO::FETCH_ASSOC)){ 
      $value  = $result['projectID']; 
      $projectName = $result['projectName']; 
     echo" 
     <option value='$value'> $projectName </option> 
     "; 
     } 
     ?> 
     </select> 
     </div> 
    </div> 
    &nbsp; 
      <div class="row"> 
       <div class="col-md-5"> 
        <select class="form-control" id="village" name="village"></select> 
       </div> 
      </div> 

AJAX:

<script type="text/javascript"> 
function dropDown(id){ 
    var theID = id; 
// assign your data to a varaible 
var dataString= {theID:id}; 
$.ajax({ 
     url: "includes/getVillage.php", 
     type: "POST", 
     data: dataString, 
     cache: false, 
     success: function (data){ 
      $("#village").html(data); 
     } 
}); 

}

getVillage.php

<?php 
include '../../connection'; 
$village = $_POST['theID']; 
$sql     = "SELECT * FROM tbl_village WHERE projectID = '$village'"; 
$query    = $db->prepare($sql); 
$results   = $query->execute(); 
while($results=$sql->fetch(PDO::FETCH_ASSOC)){ 
    $value = $results['villageID']; 
    $text = $results['villageName']; 

    echo "<option value'$value'>$text</option>"; 
} 
+0

あなたは[sql injection attacks](http://bobby-tables.com)に脆弱です。そして、正確にどのようにこのコードは動作していませんか? –

+0

@MarcBどのように?とにかく、 '#village'というIDを持つ2番目のselectタグの値は変更されません。 –

+0

@JerlonBuenconsejo:あなたはすでに 'PDO'を使っています...どちらが良いですか? '$ _POST []'を直接クエリ文字列に使用しないでください。 ['bindParam()']を使う(http://php.net/manual/en/pdostatement.bindparam.php) –

答えて

1

あなたのAJAX呼び出しを介してデータを渡していないようです。

function dropDown(id){ 
    var theID = id; 
    // assign your data to a varaible 
    var dataString= {theID:id}; 
    $.ajax({ 
      url: "includes/getVillage.php", 
      type: "POST", 
      data: dataString, 
      cache: false, 
      success: function (data){ 
       $("#village").html(data); 
      } 
    }); 
} 

は、別の方法としては、それは私が間違った接続をしたことが判明し、以下の形式

var dataString= "theID="+id; 
+0

まだ結果が表示されていません –

0

に値を渡すことができます。ファイルgetVillage.phpだけを評価した後。私はconnection.phpに関する多くのエラーを受けました。みんなありがとう。

関連する問題