powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Список с многоуровневой зависимостью
6 сообщений из 6, страница 1 из 1
Список с многоуровневой зависимостью
    #39388870
dfii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я не программист, я по железу.
Но прижало и возникла необходимость создать для поступающей на ремонт техники создать небольшую бд.
Для регистрации техники выбираем из динамических списков сначало отдел, далее с помощью javascript для второго окна формируется список категории техники отфильтрованный в запросе во выбранному ранее отделу, список для третьего окна должен фильтроваться как по выбранной категории, так и по выбранному отделу, но вот как получить значение выбраного отдела ума не приложу. Чтобы закончить свой проект, осталось решить только эту задачу, но времени в связи с загруженностью на изучение теории нет. Данные задачи приложил. Данные в бд для простоты урезал.
...
Рейтинг: 0 / 0
Список с многоуровневой зависимостью
    #39388903
dfii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробую развернуть вопрос
="Код формы со списками 'addremont.php"
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
<html>
<head>
<meta charset="utf-8" />
<title>Ремонт - Поступление</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="selects.js"></script>
</head>
<body>
<?php
	function sp_otdel()      {
                $dbc = mysqli_connect ('localhost', 'root', '', 'select3');
                $query = "SELECT * FROM tbl_otdel ORDER BY name";
                $query_res = mysqli_query ($dbc, $query);
                $sp_otdel = array();
                while($row = mysqli_fetch_assoc($query_res))    {
                        $sp_otdel[] = $row;                              }
                return $sp_otdel;        }
        $sp_otdel = sp_otdel();
?>
	<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
                <select name='sp_otdel' id='sp_otdel'>
                <option value="0"> - Выберите отдел - </option>
                <?php foreach($sp_otdel as $item)       {echo "<option value='".$item['id']."'>".$item['name']."</option>";} ?>
                </select>


                
                <select name='sp_category_tech' id='sp_category_tech' disabled="disabled">
     		<option value="0"> - Выберите категорию - </option>
                </select>



                <select name='sp_num_tech' id='sp_num_tech' disabled="disabled">
	         	<option value="0"> - Выберите номер - </option>
                </select>


	</form>
</body>
</html>



В нём к первому и второму полям формы нет нареканий. Для третьего необходимо сформировать список, который будет зависеть от выбора значения в первом и втором полях.

="JavaScript для динамической обработки формы 'select.js'
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
$(document).ready(function () {
	$('#sp_otdel').change(function () {
		var sp_otdel = $('#sp_otdel').val();
		var url = 'get_category_tech.php';
		
		$.get(
			url,
			"sp_otdel=" + sp_otdel,
			function (result) {
				if (result.type == 'error') {
					alert('error');
					return(false);
				}
				else {
					var options = ''; 
					
					$(result.sp_category_tech).each(function() {
						options += '<option value="' + $(this).attr('id_category_tech') + '">' + $(this).attr('category') + '</option>';
					});
					
					$('#sp_category_tech').html('<option value="0"> - Выберите категорию - </option>'+options);
					$('#sp_category_tech').attr('disabled', false);
							
				}
			},
			"json"
		);
	});


$('#sp_category_tech').change(function () {
var sp_category_tech = $(this).val();
		 if (sp_otdel == '0') {
		$('#sp_num_tech').html('<option>- Выберите номер -</option>');
		$('#sp_num_tech').attr('disabled', true);
		return(false);
	}
	$('#sp_num_tech').attr('disabled', true);
		$('#sp_num_tech').html('<option>загрузка...</option>');
		 		var url = 'get_num_tech.php';
		
		$.get(
			url, 
			"sp_category_tech=" + sp_category_tech,
			
			function (result) {
				if (result.type == 'error') {
					alert('error');
					return(false);
				}
				else {
					var options = ''; 
					$(result.sp_num_tech).each(function() {
						options += '<option value="' + $(this).attr('id') + '">' + $(this).attr('num') + '</option>'; 
						
					});
					$('#sp_num_tech').html('<option value="0"> - Выберите номер - </option>'+options);		
					$('#sp_num_tech').attr('disabled', false);
					
	}
			},


			"json" 
		);
	});	
});



При выборе значения во втором окне JavaScript запускает файл sp_num_tech.php и передаёт ему это значение. Но список третьего окна зависит ещё и от значения первого окна, которое, к сожалению, я и не могу найти способ как отправить вместе со значением второго окна.

="Код для формирования третьего списка 'sp_num_tech.php'
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<?php
$sp_category_tech = @intval($_GET['sp_category_tech']);
$sp_otdel = ; // Сюда нужно передать значение первого поля
$dbc = mysqli_connect ('localhost', 'root', '', 'select3' );
$query = "SELECT * FROM tbl_number_tech WHERE id_category_tech = $sp_category_tech AND id_location = $sp_otdel";
$regs = mysqli_query($dbc, $query);
if ($regs) {
    $num = mysqli_num_rows($regs);      
    $i = 0;
    while ($i < $num) {
       $sp_num_tech[$i] = mysqli_fetch_assoc($regs);   
       $i++;
    }     
    $result = array('sp_num_tech'=>$sp_num_tech);  
}
else {
	$result = array('type'=>'error');
}
print json_encode($result); 
?>

...
Рейтинг: 0 / 0
Список с многоуровневой зависимостью
    #39389567
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dfii,

наверное надо так?
Код: javascript
1.
2.
3.
4.
5.
6.
$('#sp_category_tech').change(function () {
var sp_category_tech = $(this).val();

var sp_otdel = $('#sp_otdel').val();

		 if (sp_otdel == '0') {
...
Рейтинг: 0 / 0
Список с многоуровневой зависимостью
    #39389981
dfii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подобное я пробовал, даже уж и не помню, принималось ли значение переменная sp_otdel в данном случае, но вот отправить две переменных за раз с помощью get не получается. Попробую ещё раз такой вариант.
Кстате нашёл выход, можно создать табличку для хранения оперативных данных, заносить туда значение полей, пользоваться ими в процессе заполнения формы а при отправки данных с формы в бд табличку чистить DELETE FROM.
...
Рейтинг: 0 / 0
Список с многоуровневой зависимостью
    #39390127
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dfii,

так вы их просто не отправляете во втором случае, надо как-то так
Код: javascript
1.
2.
3.
$.get(
	url, 
	"sp_category_tech=" + sp_category_tech + "&sp_otdel=" + sp_otdel,
...
Рейтинг: 0 / 0
Список с многоуровневой зависимостью
    #39391302
dfii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
О, то что надо, я пробывал такое, но через запятую, да асперанд, или как его там, короче & не указывал.
Огромное спасибо!!!
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Список с многоуровневой зависимостью
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]