Nie mam pojęcia jak rozwiązać problem, tym bardziej że analogiczne rozwiązanie działa w innym moim skrypcie. Mam coś takiego:
function retrieveAttritues(prod_id,form_id,shop) { var url = 'ajax.attributes_response.php?prod_id=' + prod_id +'&form_id=' + form_id + '&shop=' + shop; window.httpObj = createXMLHTTPObject(); window.httpObj.onreadystatechange = function() { if (window.httpObj.readyState == 4) { if(window.httpObj.responseText=='NoneProd') { document.getElementById('prod_' + form_id).style.border='2px solid red'; document.getElementById('attribute_' + form_id).innerHTML ='Brak produktu!'; document.getElementById('products_name_' + form_id).innerHTML =''; } else { document.getElementById('prod_' + form_id).style.border=''; document.getElementById('attribute_' + form_id).innerHTML = window.httpObj.responseText; if(document.getElementById('quantity_' + form_id).value=='0' || document.getElementById('quantity_' + form_id).value=='') { document.getElementById('quantity_' + form_id).style.border='2px solid red'; } else { document.getElementById('quantity_' + form_id).style.border=''; } } else { document.getElementById('attribute_' + form_id).innerHTML = 'Przetwarzam...'; } } window.httpObj.open('GET', url,true); window.httpObj.send(null); }
Oraz
echo "<td>ID: <input onkeyup=\"retrieveAttritues(prod_{$pos}.value,'{$pos}','{$_GET['shop']}');\" type=text size=5 maxlength=5 name=prod_{$pos} id=prod_{$pos}></td><td id=attribute_{$pos}>Atrybut</td><td>Cena podstawowa*:<input type=text size=6 name=brutto_{$pos} id=brutto_{$pos}></td><td>Sztuk:<input type=text size=3 name=quantity_{$pos} id=quantity_{$pos} onkeyup=\"quantityMore('{$pos}');\"><td><td id=products_name_{$pos}></td></tr>"
W id=attribute_{$pos} generuje się SELECT z pobranymi z MySQL polami. Wszystko działa, tzn. SELECT się ładuje, nie ma żadnego błędu w składni js. Tylko, w momencie wysłania formularza nie wysyła się pod Firefoxem ten SELECT (nie wysyła się wcale, jakby go nie było w formularzu - nie wchodzi do tablicy $_POST). Problem nie występuje w IE, gdzie pole select jest wysyłane i wszystko działa.
Firefox czasami zachowuje się bardzo specyficznie, próbowałem zlokalizować co jest nie tak, ale bez skutku. Proszę o pomoc.
----------
Problem rozwiązany. Firefox po prostu ma problemy z umiejscowieniem <form>, w momencie gdy <form> zamieszcza się przed główną tabelą wszystko działa, jeżeli zagnieżdża się form po <table> zaczynają być problemy. Nie mam pojęcia dlaczego tak :/ Ale ważne, że po poprawkach w HTML działa.