Сделала с помощью аякса, чтоб при изменение выбора в одном комбобоксе изменились данные во втором, во втором изменились в третим. Функциями changeSelect. но при первоначальной загрузке страницы, мне надо, чтобы все комбобоксы с определенными данными сразу подгрузились. Функция loadDropBox(). Ну естественно данные не успевают подгрузиться. Если ставлю между вызовами функций в функции loadDropBox() алерты, то данные за счет паузы подгружаться успевают. Как то можно избежать этого? Или первоначально без всяких аяксов просто загружать целиком страничку? Но тогда при вызове changeSelectProductCategory тоже ситуация , когда надо два комбобокса подгружать, и тоже данные не успевают прийти, когда нет алертов.
| Код | <script type="text/javascript"> function changeSelectProductCategory(sel, targetstr) { var value = sel.value; sendRequest('product.dr?productCategoryId='+value, 'resultProductCategory', getRequest); sendRequest2('product_version.dr?productId='+value, 'resultProduct', getRequest2); } function changeSelectProduct(sel, targetstr) { var value = sel.value; sendRequest2('product_version.dr?productId='+value, 'resultProduct', getRequest2); } function changeSelectProductVersion(sel, targetstr) { var value = sel.value; sendRequest3('product_result.dr?page='+value, 'resultProductVersion', getRequest3); } function loadDropBox() { sendRequestStart('product_category.dr', 'resultStart', getRequestStart); <%--sendRequest('product.dr?productCategoryId='+value, 'resultProductCategory', getRequest);--%> sendRequest('product.dr', 'resultProductCategory', getRequest); sendRequest2('product_version.dr', 'resultProduct', getRequest2); sendRequest3('product_result.dr', 'resultProductVersion', getRequest3); } function createHttpRequest() { var httpRequest; var browser = navigator.appName; if (browser == "Microsoft Internet Explorer") { httpRequest = new ActiveXObject("Microsoft.XMLHTTP"); } else { httpRequest = new XMLHttpRequest(); } return httpRequest; }
function sendRequestStart(file, _resultStart, getRequestProc) { resultStart = _resultStart; document.getElementById(resultStart).innerHTML = 'Wait...'; httpRequest.open('get', file); httpRequest.onreadystatechange = getRequestProc; httpRequest.send(null); }
function sendRequest(file, _resultProductCategory, getRequestProc) { resultProductCategory = _resultProductCategory; document.getElementById(resultProductCategory).innerHTML = 'Wait...'; httpRequest.open('get', file); httpRequest.onreadystatechange = getRequestProc; httpRequest.send(null); }
function sendRequest2(file, _resultProduct, getRequestProc) { resultProduct = _resultProduct; document.getElementById(resultProduct).innerHTML = 'Wait...'; httpRequest.open('get', file); httpRequest.onreadystatechange = getRequestProc; httpRequest.send(null); }
function sendRequest3(file, _resultProductVersion, getRequestProc) { resultProductVersion = _resultProductVersion; document.getElementById(resultProductVersion).innerHTML = 'Wait...'; httpRequest.open('get', file); httpRequest.onreadystatechange = getRequestProc; httpRequest.send(null); }
function getRequestStart() { if (httpRequest.readyState == 4) { document.getElementById(resultStart).innerHTML = httpRequest.responseText; } }
function getRequest() { if (httpRequest.readyState == 4) { document.getElementById(resultProductCategory).innerHTML = httpRequest.responseText; } }
function getRequest2() { if (httpRequest.readyState == 4) { document.getElementById(resultProduct).innerHTML = httpRequest.responseText; // alert(httpRequest.responseText); } }
function getRequest3() { if (httpRequest.readyState == 4) { document.getElementById(resultProductVersion).innerHTML = httpRequest.responseText; // alert(httpRequest.responseText); } }
var httpRequest = createHttpRequest(); var resultProductCategory = ''; var resultProduct = ''; var resultProductVersion = ''; var resultStart = '';
function send(value){ sendRequest('product.dr?page='+value, 'resultProductCategory', getRequest); sendRequest2('product_version.dr?page='+value, 'resultProduct', getRequest2); sendRequest3('product_result.dr?page='+value, 'resultProductVersion', getRequest3); sendRequestStart('product_category.dr', 'resultStart', getRequestStart); } </script>
|
|