编辑:
SQL
$valuefromjs = $_REQUEST['var'];
$result6 = "SELECT DISTINCT $valuefromjs FROM persons ORDER BY $valuefromjs ASC";
$result7 = mysql_query($result6);
$num = mysql_num_rows($result7);
$dataRanges[0] = array('dataRanges');
for ($i=1; $i<($num+1); $i++)
{
$dataRanges[$i] = array( (int) mysql_result($result7, $i-1) );
}
echo json_encode($dataRanges);
HTML
<select id="combo2" class="combo" data-index="2"></select>
的jQuery
$('#1combo').on('change', function () {
var jsonVar = $.ajax({
url : "visits/comboquery.php?var="+$(this).val(),
dataType: "json",
async: false,
success: function(response) {
}
}).responseText;
for (var i=1; i<objVar.length;i++)
{
$('#combo2').html("<option value="+objVar[i]+">"+objVar[i]+"</option>");
}
});
问题:
我有一个包含查询结果的数组。现在我需要结果是combo2选项,出了什么问题?
答案 0 :(得分:0)
据我所知,combo1的选择将定义为构建combo2运行哪个查询。
问题:用于构建combo2的PHP在服务器端进行了解析,即,当页面到达用户的浏览器并且javascript开始执行时,PHP代码总是完成执行。
如果你有一组有限的可能的查询可以生成秒组合(这应该是因为combo1有有限数量的选项),你可以创建所有这些,每个都有不同的id,并维护它们隐藏(css&#34;显示:无&#34;)。
<select id="firstCombo2" class="combo2">
...
</select>
<select id="secondCombo2" class="combo2">
...
</select>
等
现在,当用户从combo1中进行选择时,您可以决定要显示哪个隐藏的组合(css&#34; display:block&#34;)。
$('select#combo1).on("change", function(){
$('select.combo2').css('display','none'); //hide all combo2's
if($(this).val()=='Opt1'){
$('select#firstCombo2').css('display','block');
}else if($(this).val()=='Opt2'){
$('select#secondCombo2').css('display','block');
}
}
答案 1 :(得分:0)
您应该使用AJAX来解决您的问题。 在combo1 onChange上调用对服务器的AJAX调用并发送选定的combo1值。 然后在你的php代码中运行带有从AJAX请求接收的值的查询,并构造一个新的组合框,其中包含字符串中的选项并回显该字符串。您可以使用该AJAX响应来填充新的combo2。