我在根据另一个选择的选项更改选择的选项时遇到问题,下面是有效的代码:
dropdown2.innerHTML = "<?php echo($SQLFormElements->GetColumnAsOptions('SELECT `field2` FROM `table2` WHERE `field1` = \'8\' ')); ?>";
解释:
我有两个数据库表:table1
和table2
. table1
有field1
. table2
有字段field2
和field1
。SQLFormElements
是一个 php 文件,它根据 mysql 查询回显 html 元素,在这种情况下,是 select 元素的选项。dropdown1
包含field1
值。dropdown2
应field2
根据 的值显示值field1
,即 的选定项dropdown1
。
无论如何,上面的代码工作正常,但是我已经硬编码而不是获取值,因为当我做这样的事情时:
var selectedItem = document.getElementById("ddField1");
dropdown2.innerHTML = "<?php echo($SQLFormElements->GetColumnAsOptions('SELECT `field2` FROM `table2` WHERE `field1` = \'" + selectedItem + "\' ')); ?>";
它不起作用,知道为什么!我有点难过。提醒一下,第一个代码片段有效。
我尝试了以下方法:
- 将变量解析为整数(我表中的 field1 是整数类型)
- 省略 where 子句中的引号
- 省略引号但对 where 子句中的值进行硬编码有效