【发布时间】:2013-02-25 13:59:26
【问题描述】:
我在根据另一个选择的选项更改选择的选项时遇到问题,下面是有效的代码:
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 应根据field1 的值显示field2 值,即dropdown1 的选定项。
无论如何,上面的代码工作正常,但是我已经硬编码而不是获取值,因为当我做这样的事情时:
var selectedItem = document.getElementById("ddField1");
dropdown2.innerHTML = "<?php echo($SQLFormElements->GetColumnAsOptions('SELECT `field2` FROM `table2` WHERE `field1` = \'" + selectedItem + "\' ')); ?>";
它不起作用,知道为什么!我有点难过。提醒一下,第一个代码 sn-p 有效。
我尝试了以下方法:
- 将变量解析为整数(我表中的field1是整数类型)
- 在 where 子句中省略引号
- 省略引号,但在 where 子句中硬编码值有效
【问题讨论】:
-
您可能有一个巨大的 SQL 注入漏洞。切勿在 SQL 代码中直接使用未经清理的用户值!
-
这不是引号问题,您正在可怕地尝试将 JavaScript 与 PHP 混合使用。想想他们每个人的执行时间和地点(通过什么)。该解决方案称为“AJAX”,您会在网络上找到大量关于此的帮助。
-
我知道 Ajax,但我刚刚开始学习 PHP 和 JavaScript。所以现在学习 Ajax 有点退步。但如果我需要它,我想我将不得不走那条路
-
SQL注入问题?我不太明白。请解释。也许我可以解决它。
-
好的,刚刚检查过了!就是 SQL 注入,而且非常严重!安全性一直是我的克星,但现在我要忽略它,因为它是我正在开发的一个内部网站,主要是为了我自己,但这是一个我必须认真考虑的问题,谢谢@asawyer。
标签: javascript quotes