Ben kullanıcı multi-select alanında seçeneklerin X miktarı kadar seçmenize olanak sağlayan bir form var. Kullanıcı, ister ve son seçilen öğeyi de-seçer X öğeleri daha büyük bir öğe seçer.
Uyarı mesajı bir önceki çoklu seçim tarafından atılmış bir sorun var.
Form 4 mult seçer, bu yüzden eğer onun üçüncü mult-seçin veya maksimum numara zaten tarafından ulaşıldı atılmış bir önceki bir sonraki çoklu seçmek ne olursa olsun kullanıcının seçtiği olsun için hata atmak olacaktır mult-seçin Doğru numara.
Burada bir kod parçacığı olduğunu. Sayfada seçer geri kalanı aynı şekilde inşa ancak farklı isimler kullanımı vardır:
<select multiple name="seasons[]" size="6" id="seasons" onChange="countSelected(this,5)">
<option value=0>Hold CTRL to select more than one</option>
<?
$ftw = mysql_query("SELECT s.seasonId, s.type FROM seasons s ORDER BY s.seasonId ASC");
while ($line = mysql_fetch_array($ftw)) {
$queried = mysql_query("SELECT seasonId FROM selectedSeason where seasonId = '$line[0]' AND id = '$objItem->itemId'");
if(mysql_fetch_row($queried))
echo "<option selected value=\"$line[0]\">". $line[1] ."</option>";
else
echo "<option value=\"$line[0]\">". $line[1] ."</option>";
}
?>
</select>
Burada uyarmak için javascript:
var selectedOptions = [];
function countSelected(select,maxNumber){
for(var i=0; i<select.options.length; i++){
if(select.options[i].selected && !new RegExp(i,'g').test(selectedOptions.toString())){
selectedOptions.push(i);
}
if(!select.options[i].selected && new RegExp(i,'g').test(selectedOptions.toString())){
selectedOptions = selectedOptions.sort(function(a,b){return a-b});
for(var j=0; j<selectedOptions.length; j++){
if(selectedOptions[j] == i){
selectedOptions.splice(j,1);
}
}
}
if(selectedOptions.length > maxNumber){
var throwAlert = true;
select.options[i].selected = false;
selectedOptions.pop();
}
}
if(throwAlert == true){
alert('You may only choose '+maxNumber+' options!!');
document.body.focus();
}
}
mevsim [] bu yüzden PHP birden fazla değer gönderebilir mevsim olması gerekir. Ben hiçbir sorun gönderme ya da sadece javascript ile veri alma var. Hata IE, FF ve Safari'de oluşur ama ne yazık ki ... Chrome değil.
Herhangi bir fikir çok değerli olacaktır.