<form method="get" action=""> <select multiple="multiple" name="nuts[]"> <select multiple="multiple" name="costs[]"> <input type="hidden" value="4" name="a"/> <input type="hidden" value="2.5" name="b"/> <input type="hidden" value="16" name="c"/>
<?php
// handle data from form
$nuts = $_GET['nuts'] ?? [];
$costs = $_GET['costs'] ?? [];
$cost_vals = $_GET['cost_vals'] ?? [];
// if $nuts == $costs ...
for($i=0;count
($nuts) == count($costs) && $i<count
($nuts);$i++) { if($nuts[$i] == $costs[$i]) {
echo $_GET[$nuts[$i]] . "<br />"; }
}
?>
Cytat
Cześć.
Posiadasz może jakiś inny przykład co do listy wielokrotnego wyboru wraz z podaniem ilości sztuk?
Przykładowo obecnie w formularzu mam wybór tylko jednego materialu, wycinek mojego formularza z tym związany to:
<div class="form-group">
<label class="control-label col-sm-2" for="id_pracownika">Pracownik:</label>
<select name="id_materialu" id="id_materialu" class="form-control">
<?php
foreach($materials as $material){ ?>
<option value="<?=$material['id_materialu']?>"><?=$material['imie']?></option>
<?php } ?>
</select>
</div>
Przydałoby mi się coś w stylu, że jest jedna lista wyboru, wybieram z niej dany materiał i obok wpisuję ilość. Po tym automatycznie pokazuje się niżej puste pole wyboru listy materiału tak, że znowu mogę wybrać kolejny materiał i obok wpisać ilość.
Pozdrawiam.
Proszę odpisywać w wątku, nie we wiadomościach prywatnych.
Kod
const btn = document.querySelector('button');
const vals = [[1,2,45,23],['sdf', 'bc', 'd', 'a']];
function create_el (n_el, attr, what, where) {
let arr = [];
for(let i=0;i<n_el;i++) {
arr.push(document.createElement(what));
if(attr.length == n_el) {
arr[i].setAttribute(attr[0], attr[1]+(i+1)+'[]')
}
where.appendChild(arr[i]);
}
return arr;
}
btn.onclick = function() {
let arr_n1 = create_el(2, ['name', 'slct'], 'select', document.querySelector('form'));
let opt, opt2;
for(let j=0;j<arr_n1.length;j++) {
for(let i=0;i<vals[0].length;i++) {
opt1 = document.createElement('option');
opt1.value = vals[j][i];
opt1.textContent = vals[j][i];
arr_n1[j].appendChild(opt1);
}
}
};
To jest tylko wzór, nie kod, który byłby napisany starannie. Jeśli zechciałbyś skorzystać z tego kodu, najlepiej abyś go przepisał lub poprawił.