【发布时间】:2011-09-24 17:14:01
【问题描述】:
我似乎无法通过 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
?>
}
任何信息都会有所帮助。
非常感谢
【问题讨论】:
-
那么问题出在哪里?
$numbers是空的,还是查询有问题? -
如果您想像现在这样,您必须发布表单,这将导致每次更改列表时网站都会重新加载。否则,它是 AJAX .. 看看 @jeroen 的答案。
-
是的,我看过他的回答。我现在正在研究 AJAX。我还没有真正看过 AJAX。我是编程新手。谢谢
-
明确说明(因为其他 cmets 或答案似乎还没有这样做):在将页面下载到用户的 Web 浏览器之前,PHP 代码在 Web 服务器上运行。 JavaScript 代码在 Web 浏览器中运行。这意味着您的 JavaScript 函数不能调用您的 PHP 函数,反之亦然。正如其他人所建议的那样,当您的选择元素发生更改时,您必须向网络服务器发送另一个请求,然后重新加载整个页面并适当填充您的第二个选择,或者(首选方式)使用 AJAX 来获取新数据而无需重新加载页面。
标签: php javascript mysql select