我需要一个相关的下拉列表,我找到了一个与城市和地区类似的解决方案。
我不知道如何让选择的品种不仅改变数量,还改变长度值?
目前,数量因所选品种而异。
这是数据文件:
<?php
$city = array (
'Местные розы' => array (
11 => '11 шт. (минимум)',
25 => '25 шт.',
51 => '51 шт.',
101 => '101 шт.',
),
'Эквадорские розы' => array (
25 => '25 шт. (минимум)',
51 => '51 шт.',
76 => '76 шт.',
101 => '101 шт.',
),
);
?>
在文件的最开头:
<?php
require_once('city.php'); // подключаем список с городами
$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : '';
// возвращаем список городов
if ($action == 'getCity')
{
if (isset($city[$_GET['region']]))
{
echo json_encode($city[$_GET['region']]); // возвраащем данные в JSON формате;
}
else
{
echo json_encode(array('Выберите количество'));
}
exit;
}
// выводим пришедшие данные
if ($action == 'postResult')
{
echo '<pre>' . htmlspecialchars(print_r($_POST, true)) . '</pre>';
exit;
}
?>
javascript:
<script type="text/javascript">
// <![CDATA[
function loadCity(select)
{
var citySelect = $('select[name="city"]');
citySelect.attr('disabled', 'disabled'); // делаем список городов не активным
// послыаем AJAX запрос, который вернёт список городов для выбранной области
$.getJSON('index.php', {action:'getCity', region:select.value}, function(cityList){
citySelect.html(''); // очищаем список городов
// заполняем список городов новыми пришедшими данными
$.each(cityList, function(i){
citySelect.append('<option value="' + i + '">' + this + '</option>');
});
citySelect.removeAttr('disabled'); // делаем список городов активным
});
}
// ]]>
</script>

在数组中多嵌套一层,其余后端不变
在js端,你得到两个数组
cityList.quantity并将cityList.lengths它们填充到相应的列表中(类似于你的填充方式citySelect)我会这样做:在处理程序中,我会
getJSON(...)编写以下内容在这种情况下,number 和 size 对应的 select 应该按照服务器给的数组的键(即
quantity和lengths)来命名。