Za pomocą MySQL i PHP wyświetlam na ekran około 100 rekordów, przy każdym rekordzie stoi SelectBox:
<select class="form-control selectstatus" name="status" data-id="'.$q_tb['id'].'">
<option value="3">anulowany</option>
<option value="0">awizowany</option>
<option value="1">brak zapłaty</option>
<option value="2">w trakcie</option>
</select>
Teraz gdy zmienię opcję w którymkolwiek SelectBoxie to ma przeładować content w divie:
function getContent(){
jQuery.post("content.php", function(data){
jQuery("#mojdiv").html(data);
});
function set_status(p1, p2){
$.ajax({
url: 'content/ajax.php',
type: 'POST',
data: { action: 'setStatus', item_id: p1, status: p2},
success: function(data){
getContent();
}
});
$('select').change(function() {
set_status($(this).data('id'), $(this).val());
});
Działa to tylko raz. Problem leży prawdopodobnie w tym, że każdy SelectBox nie ma własnego ID i zdarzenia onChange przypisanego do siebie. Jak zatem zrobić zdarzenie, które nasłuchuje wszystkie SelectBoxy i wykonuje coś? Przecież nie wiem dokładnie ile rekordów wyciągam z bazy, dlatego nie jestem w stanie stworzyć dla każdego rekordu osobnego zdarzenia. Jak to zrobić?