Избор на 10 случайни чекбокс-а от много.

azsym

New member
Имам един списък е чекбокс-ове. Да речем 30 броя, в тях има женски и мъжки имена.

Има ли начин (JS, php) над списъка да има текст/бутон/чек 'избери 10 случайни', както и 'избери 10 случайни мъже/жени' и при кликане там да се маркират 10 случайни кутийки или 10 случйни мъже или жени?

едит:

в момента кода за кутийката е:
<input type="checkbox" id="37" name="fields[]" value="1317916368"/>

като id винаги е различно за всяка. четни за жени и нечетни за мъжете.
 
Последно редактирано:
Re: Избор на 10 случайни чекбокс-а от много.

Здравей,
един вариант от мене.
функцията randomcheck(elementName, maxSelected) приема следните параметри:
elementName - име на групата от чекбоксовете
maxSelected - максимален брокй избрани елементи.
Код:
<html>
<head>
	<script>
		function randomcheck(elementName, maxSelected) {
			for(a in document.getElementsByName(elementName)) {
				document.getElementsByName(elementName)[a].checked = '';			
			}
			for(i = 0; i < maxSelected; i++) {				
				document.getElementsByName(elementName)[Math.floor(Math.random()*document.getElementsByName(elementName).length)].checked = 'checked';				
			}
		}
	</script>
</head>
<body>
<a href="JavaScript:randomcheck('fields[]', 4);">rand()</a><br/>
<input type="checkbox" name="fields[]" value=""><br/>
<input type="checkbox" name="fields[]" value=""><br/>
<input type="checkbox" name="fields[]" value=""><br/>
<input type="checkbox" name="fields[]" value=""><br/>
<input type="checkbox" name="fields[]" value=""><br/>
<input type="checkbox" name="fields[]" value=""><br/>
<input type="checkbox" name="fields[]" value=""><br/>
<input type="checkbox" name="fields[]" value=""><br/>
<input type="checkbox" name="fields[]" value=""><br/>
<input type="checkbox" name="fields[]" value=""><br/>
<input type="checkbox" name="fields[]" value=""><br/>
<input type="checkbox" name="fields[]" value=""><br/>
<input type="checkbox" name="fields[]" value=""><br/>
<input type="checkbox" name="fields[]" value=""><br/>
<input type="checkbox" name="fields[]" value=""><br/>
<input type="checkbox" name="fields[]" value=""><br/>
<input type="checkbox" name="fields[]" value=""><br/>
<input type="checkbox" name="fields[]" value=""><br/>
<input type="checkbox" name="fields[]" value=""><br/>
<input type="checkbox" name="fields[]" value=""><br/>
</body>
</html>
Поздрави.
 
Re: Избор на 10 случайни чекбокс-а от много.

Здравей,
един вариант от мене.

мерси,
това работи, но има нещо странно:
по някой път не избира 10 а по-малко: и всеки път различна бройка избрани.
виж го на сайта (2рия от подписа ми).
търси по пощенски код

CR41PE
разстояние 2км

връща 12 резултата. би трябвало винаги 2 да са празни. Обаче селектира по-малко от 10 понякога.
edit:
възможно ли е да е защото при всеки ход на цикъла числото може да съвпада с същото от предходния цикъл.
напр: цикъл от 10 повторения за 15 елемента: 1,12,3,5,6,1,3,7,8,12 това са реално 8 уникални.
как да са 10 уникални винаги?
 
Последно редактирано:
Re: Избор на 10 случайни чекбокс-а от много.

Здравей,
не съм прочел условието правилно 🙂
Код:
function randomcheck(elementName, maxSelected) {
			for(a in document.getElementsByName(elementName)) {
				document.getElementsByName(elementName)[a].checked = '';			
			}
			var selectedElements = 0;
			do {
				var rand = Math.floor(Math.random()*document.getElementsByName(elementName).length);				
				if (!document.getElementsByName(elementName)[rand].checked) {
					document.getElementsByName(elementName)[rand].checked = 'checked';
					selectedElements++;
				}				
			} while (selectedElements <= maxSelected);
			
		}
Поздрави.
 
Re: Избор на 10 случайни чекбокс-а от много.

сега работи, но трябва да му дам 9 като макссел.
иначе при 10 връща винаги 11 селектирани.

за сега мога да го оставя и така, но би било добре ако може да избира (до) 10 мъже или жени: т.е. 3 опции за избор на до 10 с 3 линка.

в момента кода за кутийката е:
<input type="checkbox" id="37" name="fields[]" value="1317916368"/>

като id винаги е различно за всяка. четни за жени и нечетни за мъжете.

има ли как с друга функция (или разширена същата) да избира 10 четни ИДта или 10 нечетни ИДта? Или всичките четни/нечетни ако са по-малко от 10.
 
Последно редактирано:
Re: Избор на 10 случайни чекбокс-а от много.

Здравей,
относно първият проблем
Код:
} while (selectedElements <= maxSelected);
замени със
Код:
} while (selectedElements < maxSelected);
Относно вторият трябва да си допишеш функцията малко.
Код:
if (document.getElementsByName(elementName)[rand].id%2) {
//четно ид
} else {
//не четно ид
}
Поздрави.
 

Back
Горе