我似乎无法将“选定项目”的值传递给PHP的JavaScript函数,该函数使用该值来查询来自MySQL数据库的数据 - >填充不同的下拉列表。
这是我的'HTML'代码
<select name="numbers" id="numbers" onChange="populateOtherSelect()">
<option value="one">one</option>
<option value="two">two</option>
<option value="three">three</option>
<option value="four">four</option>
</select>
<?php echo $option ?>
这是我的'JavaScript'功能代码
function populateOtherSelect() {
<?php
// code that opens db connection
$numbers = $_POST['numbers'];
$query = "select*from Database.Table where Something = 'Something' and Numbers like '%".$numbers."%'";
$result = mysql_query($query);
$option = "";
while($row = mysql_fetch_array($result))
{
$OtherOptions = $row["OtherOptions"];
$option.="<option value=\"$OtherOptions\">".$OtherOptions."</option>\r\n";
}
// code that closes db connection
?>
}
任何信息都会有所帮助。
非常感谢
答案 0 :(得分:2)
看来你的javascript代码是html / php文件的一部分而且不会起作用; php仅在初始页面加载时运行,此时可能没有$_POST
变量。
您需要做的是,在第一次选择更改时,对php脚本进行ajax调用,并使用该ajax调用的响应来填充您的第二个选择。
所以基本上你的javascript函数必须看起来像:
function populateOtherSelect() {
/*
* 1. get the value of the numbers select
* 2. make an ajax call to a php script / the server that gets some information from a database
* 3. use the response from the ajax call to populate your second select
*/
}
答案 1 :(得分:0)
我认为你需要在select语句中添加一个空格:
$query = "select * from Database.Table where Something = 'Something' and Numbers like '%".$Numbers."%'";
答案 2 :(得分:0)
首先,$Numbers
变量不存在,它是$numbers
。