Javascript 在更改另一个dropbox的值后更新一个dropbox的值?PHP/JavaScrip(AJAX)
我正在学习关于如何与数据库进行交互式通信的教程。然而,尽管略有不同,我还是设法让代码在这里工作——我使用的是Javascript 在更改另一个dropbox的值后更新一个dropbox的值?PHP/JavaScrip(AJAX),javascript,php,ajax,pdo,dropdown,Javascript,Php,Ajax,Pdo,Dropdown,我正在学习关于如何与数据库进行交互式通信的教程。然而,尽管略有不同,我还是设法让代码在这里工作——我使用的是PDO,而教程是明确的mysql 目前,我一直在尝试自己找出如何从一个下拉菜单中获取一个值,作为填充另一个下拉框的“键”。我的想法是选择一个部门,它由数字表示,在选择了一个部门后,它应该用数据库中的用户填充第二个下拉菜单,但第一个值作为数据库表中列的键值 我相信我已经正确地完成了代码,但是我得到了错误500。下面是我得到的错误日志: showCustomer @ Archive.ph
PDO
,而教程是明确的mysql
目前,我一直在尝试自己找出如何从一个下拉菜单中获取一个值,作为填充另一个下拉框的“键”。我的想法是选择一个部门,它由数字表示,在选择了一个部门后,它应该用数据库中的用户填充第二个下拉菜单,但第一个值作为数据库表中列的键值
我相信我已经正确地完成了代码,但是我得到了错误500。下面是我得到的错误日志:
showCustomer @ Archive.php:114
onchange @ Archive.php:49
ListPicker._handleMouseUp
第114行是xhttp.send()代码>我很不确定这可能会导致什么样的问题
第49行是
我真的对这整件事感到困惑,我试着自己去做,但这些错误对我来说太难以捉摸了
Bellow是我为了最小化复杂性和最大程度的理解而修改的代码,因为我删除了问题中的无意义部分。我希望这足够清楚
Archive.php:
<form action= "<?php $_PHP_SELF ?>" method = "GET">
<select id="DEPT" name="DEPT" onchange="showCustomer(this.value)">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
<div id="txtHint">
<select></select>
</div>
</form>
<script>
function showCustomer(str)
{
console.log(str);
var xhttp;
if (str == ""){
document.getElementById("txtHint").innerHTML = "";
return;
}
xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function()
{
if (this.readyState == 4 && this.status == 200)
{
document.getElementById("txtHint").innerHTML = this.responseText;
}
};
xhttp.open("GET", "AJAX_connect_&_query.php?q="+str, true);
xhttp.send();
}
</script>
<?php
echo $q;
$sql = "SELECT FIRST_NAME, MID_NAME, LAST_NAME from users WHERE DEPT='".$q."';";
$stmt = $GLOBALS['conn']->prepare($sql);
$stmt = $stmt->execute();
$data=$stmt->fetch(PDO:FETCH_ASSOC);
echo "<select>";
foreach ($data as $row)
{
echo "<option>".$row['FIRST_NAME']." ".$row['MID_NAME']." ".$row['LAST_NAME']."</option>";
}
echo "</select>";
?>
您需要从$\u POST
或$\u get
超全局(在您的情况下,$\u get
)获取$q
)
在定义它之前,您开始谈论$q
查看您的错误日志,我相信它会告诉您同样的信息 我已经试过了,也许我应该提一下。我在php代码中做了类似的事情,但结果是一样的:echo$dept=$\u GET['q'];$sql=“从DEPT=”“$DEPT.”的用户中选择名字、中间名、姓氏代码>请记住,我是从头开始写上述语句的,可能是错误的。Archive.php:114 GET localhost/AJAX\u connect\u&\u query.php?q=12500(内部服务器错误)showcuster@Archive.php:114 onchange@Archive.php:49 ListPicker。\u handleMouseUp是Apache日志还是php日志?它看起来不像PHP onechange this$stmt=$stmt->execute()
仅此$stmt->execute()
execute返回boolWarning:您完全可以使用参数化的prepared语句,而不是手动构建查询。它们由或提供。永远不要相信任何类型的输入,尤其是来自客户端的输入。即使您的查询仅由受信任的用户执行。