I needed a dependent drop-down list, I found a similar solution with cities and regions.
I do not know how to make, so that from the selected variety , not only the quantity, but also the length values change?
Currently the amount of the selected grade is changing.
Here is the data file:
<?php $city = array ( 'ΠΠ΅ΡΡΠ½ΡΠ΅ ΡΠΎΠ·Ρ' => array ( 11 => '11 ΡΡ. (ΠΌΠΈΠ½ΠΈΠΌΡΠΌ)', 25 => '25 ΡΡ.', 51 => '51 ΡΡ.', 101 => '101 ΡΡ.', ), 'ΠΠΊΠ²Π°Π΄ΠΎΡΡΠΊΠΈΠ΅ ΡΠΎΠ·Ρ' => array ( 25 => '25 ΡΡ. (ΠΌΠΈΠ½ΠΈΠΌΡΠΌ)', 51 => '51 ΡΡ.', 76 => '76 ΡΡ.', 101 => '101 ΡΡ.', ), ); ?> At the very beginning of the file:
<?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> 