2016-07-22 9 views
1

Der Titel sagt mein Ziel hier. Ich versuche, die Werte des zweiten Auswahl-Tags bei Änderung des ersten Tags zu ändern. Hier ist, was ich versucht habe. Die Werte stammen aus der Datenbank. Dies beinhaltet einige PHP-Selektionen.Ändern der Werte auf zweiten <select> Tag nach dem Ändern der ersten <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> 

Die 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

Sie sind anfällig für [sql injection attacks] (http://bobby-tables.com). Und genau wie funktioniert dieser Code nicht? –

+0

@MarcB Wie? Jedenfalls ändert es nicht den Wert auf dem zweiten Select-Tag, das eine ID von '# village' hat. –

+0

@ JerlonBuenconsejo: Sie verwenden bereits 'PDO' ... Was gut ist. Verwenden Sie '$ _POST []' nicht direkt in der Abfragezeichenfolge. Verwenden Sie ['bindParam()'] (http://php.net/manual/en/pdostatement.bindparam.php) –

Antwort

1

Es Sie die Daten nicht, die durch Ihre Ajax-Aufruf scheint.

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); 
      } 
    }); 
} 

Alternativ können Sie die Werte in der folgenden Format übergeben

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

Die Ergebnisse werden immer noch nicht angezeigt –

0

Es stellt sich heraus, dass ich eine falsche Verbindung hergestellt. Nach Auswertung der getVillage.php Datei allein. Ich habe viele Fehler bezüglich meiner connection.php erhalten. Danke Leute.

Verwandte Themen