编辑:如果此功能有效,我的主要代码将不再有效吗?
<script type="text/javascript" src="jquery-1.7.2.js"></script>
<script>
var second_choice = $('#second-choice').val();
$("#first-choice").change(function() {
$("$second-choice").load("findModel.php?choice=" + $("#first-choice").val());
});
</script>
以下是相关的PHP文件:
<?php
include 'dbc.php';
$choice = mysql_real_escape_string($_GET['choice']);
$query="SELECT * FROM `cars` WHERE `DVLAMake`='$choice'";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)) {
echo "<option>" . $row{'DVLAModel'} . "</option>";
}
?>
数据库连接有效。
#加载时,PHP文件会填充我的第一个下拉列表:
<form name="indexSearch" action="searchResults.php" method="POST">
<select id="first-choice">
<option selected value="base">Please Select</option>
<option value="VAUXHALL">VAUXHALL</option>
<?php
$sql="SELECT DISTINCT `DVLAMake` FROM `cars`";
$result = mysql_query($sql);
while ($data=mysql_fetch_assoc($result))
{
echo "<option value =\"{$data[DVLAMake]}\" >{$data[DVLAMake]}</option>\n";
}
?>
</select>
<select id="second-choice">
<option>Please choose from above</option>
</select>
<br />
<input type="submit" style="font-size:14px; padding:3;"value="Submit" size="20" />
</form>
这是有效的,然后选择它所谓的函数值,然后用我可以选择的选项填充第二个函数。但是,当我发布表单时,它不会通过它选择第二个下拉列表值只是空,但它确实需要第一个下拉值选择值。
有什么理由?
答案 0 :(得分:1)
问题是第二个select标签没有name属性。如果它位于表单中,只有属性具有名称时才会通过帖子获取请求。如果你使用的是jquery,你可以简单地通过id获取值,然后通过ajax发布它。在jquery中选择这样的。
var second_choice = $('#second-choice').val();
答案 1 :(得分:0)
您如何更改所选值?使用例如AJAX?你是如何发送数据的?使用带有页面重载的ajax或简单POST?
如果您使用ajax更改内容,则需要通过ajax发送数据。因为没有它,你将不会发送由JS生成的数据,但这是由PHP脚本生成的。
答案 2 :(得分:0)
你写了
$("$second-choice").load("findModel.php?choice=" + $("#first-choice").val());
而不是:
$("#second-choice").load("findModel.php?choice=" + $("#first-choice").val());
$ - &gt;的#强>