SOLVED, THANK YOU <3
I have a problem, when I try to populate a second dropdownlist with data from database from column selected in previous dropdownlist, like:
ddl:DDL1 ddl:DDL2 button:Search
When You choose in DDL1 e.g. ID, DDL2 should let You pick one of the existing ID's from database.
This is my HTML Form:
<form id="detailed_search_form">
<select id="select_columns" name="select_columns" onchange="take_value()">
</select>
<select id="select_value" name="select_value">
</select>
<button id="button_search" value="search" onclick="search()">Search</button>
</form>
<div id="fill_me"></div>
This fills DDL1, and THIS WORKS:
function take_columns(){
var tab = new Array();
$.ajax({
dataType: "json",
url: "take_columns.php",
data: { },
success: function(data) {
for (var i=0;i<data.length;i++){
tab[i]=data[i]["Column_name"];
}
var $el = $("#select_columns");
$el.empty(); // remove old options
for (var i=0;i<tab.length;i++){
$el.append($("<option></option>").attr("value", tab[i]).text(tab[i]));
}
}
});
};
This SHOULD fill DDL2 and THIS DOESN'T WORK:
function take_value() {
var e = document.getElementById("select_columns");
var requestedColumn = e.options[e.selectedIndex].value;
$.ajax({
data: { column: requestedColumn },
url: 'take_value.php',
dataType: 'json',
success: function(json) {
for (var i = 0;i<data.length;i++){
tab[i]=data[i][requestedColumn];
alert(tab[i]);
}
var $el = $("#select_value");
$el.empty(); // remove old options
for (var i=0;i<tab.length;i++){
$el.append($("<option></option>").attr("value", tab[i]).text(tab[i]));
}
}
});
};
This is take_value.php:
$pdo = new PDO($dsn, $username, $password);
if(isset($_GET['column'])) {
$whatColumn = $_GET['column'];
$stmt = $pdo->prepare("SELECT $whatColumn FROM kandydaci");
$stmt->bindParam(':column', $whatColumn, PDO::PARAM_STR);
$stmt->execute();
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
}
echo json_encode($rows);