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>
<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>";
}
Sie sind anfällig für [sql injection attacks] (http://bobby-tables.com). Und genau wie funktioniert dieser Code nicht? –
@MarcB Wie? Jedenfalls ändert es nicht den Wert auf dem zweiten Select-Tag, das eine ID von '# village' hat. –
@ 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) –