嗨,我目前有 2 个< select>
第一个是由之前页面中的按钮操作和数据库查询填充的。根据您在第一个
<select name = "select1" class = "select" size = "10" onChange = "function()">
<?php
while ($result1 = $query1->fetch(PDO::FETCH_OBJ)) {
?>
<option value = "
<?php
echo $result1->id;
?>">
<?php
echo $result1->text;
?>
</option>
<?php } ?>
</select>
选择2:
<select name = "select2" class = "select" size = "10" onChange = "function(this.options[this.selectedIndex].value)">
<?php
while ($result2 = $query2->fetch(PDO::FETCH_OBJ)) { ?>
<option value = "
<?php
echo $result2->id . ";" . $result2->text . ";" . $result2->text2 . ";" . $result2->text3;
?>">
<?php
echo $result2->text;
?>
</option>
<?php } ?>
</select>
如果您好奇,函数只是显示一些 div 并将值写入一些文本框:
var str = select.split(";");
document.getElementById("div1").className = "";
document.getElementById("div2").className = "div";
document.getElementById("div3").className = "div";
document.getElementById("div4").className = "div";
document.getElementById("txt1").value = str[0];
document.getElementById("txt2").value = str[1];
document.getElementById("txt3").value = str[2];
document.getElementById("txt4").value = str[3];
php数据库查询填写选择1:
try {
$query1 = $db->prepare('SELECT id, text FROM tbl1 INNER JOIN tbl0 USING(id) WHERE id = ?');
$query1->execute(array($_POST['id']));
} catch(PDOException $ex) {
log_error($ex);
$arrError[] = "Error SQL 1";
}
php数据库查询填写选择2:
try {
$query2 = $db->prepare('SELECT id, text, text2, text3 FROM tbl1 INNER JOIN tbl2 USING(id) WHERE id = ?');
$query2->execute(array($IDFROMSELECT1));
} catch(PDOException $ex) {
log_error($ex);
$arrError[] = "Error SQL 2";
}
如何将 select 1 中的 id(选项值)获取到 php mysql 查询 2 中的 $IDFROMSELECT1 变量中?
非常感谢任何提示!
最佳答案
您必须使用 AJAX 将选择框的值发送到 PHP 脚本,该脚本将运行查询并发回结果。使用 jQuery 库最容易完成 AJAX。
在 onchange() 中运行的 JavaScript 是这样的:
var selectedValue = $(this).val();
$.ajax({url: "getData.php",
type: "POST",
dataType: "json",
data: {id: selectedValue},
success: function(returnedData) {
//do something here with returned data
}
});
在 PHP 脚本 (getData.php) 中,您将像平常一样执行选择,将结果放入数组中,然后以 JSON(Javascript 对象表示法)形式返回该数组。这会将查询结果转换为您可以在 javascript 中使用的格式(在本例中,将返回的结果添加到另一个选择框)
$json = json_encode($returnArray);
echo $json;
关于javascript - 使用 HTML <select> <option> OnChange 更改 PHP 变量并执行 mysql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37005633/