当POST'ing下拉值,只有第一个值发布,第二个为空(使用JSCRIPT,PHP)

当POST'ing下拉值,只有第一个值发布,第二个为空(使用JSCRIPT,PHP)

问题描述:

编辑:我的主代码不再工作,应该这个功能的工作?当POST'ing下拉值,只有第一个值发布,第二个为空(使用JSCRIPT,PHP)

<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

你不必'你的选择输入 – safarov 2012-04-05 08:52:29

+0

你name'属性没有'na的表单控件me'属性,它不应该能够提交任何*数据。 – Quentin 2012-04-05 09:01:27

问题是第二个选择标记没有名称属性。如果它位于表单中,则只有在该属性具有名称的情况下,才会通过帖子获取请求。如果您使用jQuery,您可以简单地通过id获取值,然后通过ajax发布。在jquery中选择像这样。

var second_choice = $('#second-choice').val(); 
+0

实际上 -

+0

原来我的代码不再工作。忘记原来的问题;我的第一个下拉列表填充,但是当我改变第二个时候什么都没有发生。 我jQuery的功能仅仅是在靠近头功能上,是正确的: – JonE 2012-04-05 09:43:21

+0

请检查主要帖子。 – JonE 2012-04-05 09:45:30

你如何改变选定的值?使用例如AJAX?你怎么发送你的数据?使用ajax或简单的POST与页面重新加载?

如果你使用ajax改变某些东西,你的数据需要通过ajax发送。因为没有它,您将不会发送由JS生成的数据,而是由您的PHP脚本生成。

你写

$("$second-choice").load("findModel.php?choice=" + $("#first-choice").val()); 

代替:

$("#second-choice").load("findModel.php?choice=" + $("#first-choice").val()); 

$ - >