我的表格有:
<form name="myForm" action="a.php" method="post">
<fieldset>
<label>class</label>
<select>
<option>1</option>
<option>2</option>
<option>3</option>
</select>
<label>Subject</label>
<select>
<option>some value from database</option>
<option>some value from database</option>
<option>some value from database</option>
<option>some value from database</option>
</select>
</fieldset>
<form>
事情是:
我想从用户的第一个下拉选择值中显示3个选项(1,2和3)。假设用户选择1然后他/她将从数据库获得相应的值作为第二选择的下拉值。然后他/她将从这些下拉值中选择一个。最后,表格将手动提交。显然,取决于第一个下拉选择值,第二个下拉选择值将相应地改变。
因此,挑战是从第一个选择下拉值中获取值,以便在手动提交表格之前的第二个选择下拉值中使用它。我怎样才能做到这一点?我正在使用PHP。我还需要什么?
稍后添加:
到目前为止,我已经了解了发布概率的解决方案。
现在想,
我必须根据第一个下拉列表检索第二个下拉列表的值。如果有第三个下拉值从数据库中检索取决于第一个和第二个,然后第四个下拉值取决于前三个,依此类推第五个,第六个...那么我该如何实现呢?
所有下拉<select></select>
元素将在同一页面上水平并排放置。
答案 0 :(得分:1)
您需要客户端脚本。这是article如何使用jQuery(流行的JS框架)实现此功能
答案 1 :(得分:0)
您需要使用javascript和AJAX动态获取第二个下拉列表的值。例如,使用jQuery,它将是:
$('#select1').change(function() {
var selectedVal = $(this).val();
//make an AJAX request to get your values depending on selectedVal
//and update the values for the second select
}
在PHP脚本中,您必须评估表示第一个select
的用户选择的传入参数,然后以JSON格式返回从数据库加载的数据。
编辑:AJAX请求将如下所示:
$.post("getsecondvals.php", { value: selectedVal }, function(data) {
var result = $.parseJSON(data);
$('#select2').html(''); //delete any old values
for (var entry in result) {
var option = $('<option></option>');
option.text(entry);
$('#select2').append(option);
}
});
您的PHP脚本可以这样构建:
<?php
$selectedValue = $_POST['value'];
// now include everything required for your database connection
// and get the categories, use prepared statements
// finally, your resulting array should be non-associative, so
// always add new values with "[]" operator
// assuming $values is your array containing the valid options, do this:
echo json_encode($values);
?>
答案 2 :(得分:0)
您需要使用Javascript来处理此问题,覆盖onSelectionChange
的{{1}}事件,并在更改事件时从服务器端脚本获取第二个下拉框的值。
答案 3 :(得分:0)
你可以试试这个:
onchange = "$('select[name=\'xyz\']').load('yourUrl/someFunction&country_id=' + this.value);"
此onchange属性将应用于第一个选择框并将名称赋予第二个选择框 喜欢:
只要您从第一个下拉菜单中更改选项,上面的代码就会发送一个AJAX GET请求。
在调用的函数中从DB获取值并返回HTML。 例如:
someFunction() {
//get values from DB and loop
String html = "<option></option>";
return html;
}