Witam, nie znam się za bardzo na ajax'ie ale udało mi się stworzyć formularz, który dodaje wiersze dynamicznie.
Mam problem jednak w dalszej części gdzie muszę po wybraniu z listy opcji załadować wartość z bazy danych.
Działa mi to ale tylko dla pierwszego wiersza.
$(document).ready(function() {
$('select.uslugi').change(function() {
$.getJSON('pobierz_cene.php', {option: $(this).val()}, function(data) {
$('input.ukryta_cena').val(data.inputValue);
$('input.okno_cena').val(($('input.ukryta_ilosc').val()*data.inputValue).toFixed(2));
});
});
});
W 'pobierz_cene.php' mam funkcję zwracającą cenę wybranej usługi. W momencie wybrania opcji z listy dla pierwszego wiersza uzupełniają się wszystkie pola input.okno_cena. Dla pozostałych wierszy nic się nie dzieje po wyborze z listy. Problem w tym, że przy dynamicznym tworzeniu forma otrzymuję tablice nazw i nie potrafię się odwołać do konkretnego wiersza.
Samo dodawanie wierszy w tabeli wygląda tak:
function addRow(tableID) {
if (counter == limit) {
alert("Maksymalna ilość usług to: 5.");
}
else {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
var row = table.insertRow(rowCount -1);
var colCount = table.rows[1].cells.length;
for(var i=0; i<colCount; i++) {
var newcell = row.insertCell(i);
newcell.innerHTML = table.rows[1].cells[i].innerHTML;
//alert(newcell.childNodes);
switch(newcell.childNodes[0].type) {
case "text":
newcell.childNodes[0].value = "";
break;
case "checkbox":
newcell.childNodes[0].checked = false;
break;
case "select-one":
newcell.childNodes[0].selectedIndex = 0;
break;
}
}
counter++;
}
}
Tworząc tabele muszę się posługiwać tablicą nazw bo inaczej nie zadziała dodawanie wierszy.
select name="uslugi[]"
Nie wiem jak się do tego zabrać. Jakieś pomysły?