ниже моя функция на главной странице. Этот код отлично работает в IE, проверьте, где я делаю ошибку
Я просто хочу передать значения на страницу ajax, так как вы можете увидеть мою ссылку выше.
function showUser2(str2) { if (str2=="") { document.getElementById("txtHint").innerHTML=""; return; } if (window.XMLHttpRequest) { xmlhttp=new XMLHttpRequest(); } else { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("txtHint").innerHTML=xmlhttp.responseText; } } var drdownValue = document.getElementsByName('shorting').item(0).value; var buttonValue1 = document.getElementsByName('buttonpassvalue1').item(0).value; var value = parseInt(document.getElementById('count').value, 10); value = isNaN(value) ? 0 : value; value++; document.getElementById('count').value = value; var val123 = document.getElementById('count').value.trim(); var gotnumber = document.getElementById('getpagevalue').value.trim(); if(val123 > gotnumber){ buttonpassvalue1.setAttribute("disabled","disabled"); buttonpassvalue.removeAttribute("disabled"); } else{ buttonpassvalue.removeAttribute("disabled"); buttonpassvalue1.removeAttribute("disabled"); } alert(drdownValue);// to check click and value alert(buttonValue1);// to check click and value xmlhttp.open("GET", "productlistajax.php?q=" + drdownValue + "&version1=" + buttonValue1, true); xmlhttp.send(); }
html-код кнопки
<button class="button" type="button" name="buttonpassvalue1" value="1" onclick="showUser2(this.value)">Next >> </button>
этот код отлично работает в IE, пожалуйста, проверьте, где я делаю ошибку
Я просто хочу передать значения на страницу ajax, так как вы можете увидеть мою ссылку выше.
благодаря
Я рекомендую использовать jQuery или другую инфраструктуру, которая всегда будет знать обо всех конкретных браузерах.
Если вы предпочитаете использовать собственный код, вам понадобится дополнительный код. Во-первых, не полагайтесь только на ActiveXObject("Microsoft.XMLHTTP");
и XMLHttpRequest
которые, вероятно, не всегда будут доступны. вместо этого используйте:
function GetXmlHttpObject(){ var xmlHttp=null; try { // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); } catch (e) { // Internet Explorer try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } } return xmlHttp; } var xmlhttp=GetXmlHttpObject();
то вы определяете свой обратный вызов:
xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("txtHint").innerHTML=xmlhttp.responseText; } }
и отправить его, но я бы включил случайную переменную в URL-адрес, чтобы убедиться, что браузер не кэширует что-либо
xmlHttp.open("GET",url+"&sid="+Math.random(),true); xmlHttp.send(null);
В любом случае, вероятно, ваша проблема не имеет ничего общего с самим ajax, и, вероятно, в вашем коде есть что-то еще, что приводит к сбою всего.
Например, взгляните на консоль хром и убедитесь, что в журнале ошибок вы найдете полезную информацию. если вы не знаете, как это сделать, у вас есть руководство
Во-первых, я немного очистил ваш код:
function showUser2(str2){ if (str2==""){ document.getElementById("txtHint").innerHTML=""; return; } if (window.XMLHttpRequest) xmlhttp=new XMLHttpRequest(); else xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); xmlhttp.open("GET", "productlistajax.php?q=" + drdownValue + "&version1=" + buttonValue1, true); xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200){ document.getElementById("txtHint").innerHTML=xmlhttp.responseText; } } var drdownValue = document.getElementsByName('shorting').item(0).value; var buttonValue1 = document.getElementsByName('buttonpassvalue1').item(0).value; var value = parseInt(document.getElementById('count').value, 10); value = isNaN(value) ? 0 : value; value++; document.getElementById('count').value = value; var val123 = document.getElementById('count').value.trim(); var gotnumber = document.getElementById('getpagevalue').value.trim(); if(val123 > gotnumber){ buttonpassvalue1.setAttribute("disabled","disabled"); buttonpassvalue.removeAttribute("disabled"); }else{ buttonpassvalue.removeAttribute("disabled"); buttonpassvalue1.removeAttribute("disabled"); } alert(drdownValue);// to check click and value alert(buttonValue1);// to check click and value xmlhttp.send(); }
Обратите внимание, что я переместил xmlHTTP.open перед xmlHTTP.onreadystatechange.
Если это не устраняет проблему, удалите ненужный код, чтобы я мог лучше понять ваши намерения.
jQuery в вашем случае сохранит только несколько строк кода. Вы можете написать компактный, надежный и удобный JavaScript-код. Я подписал StackOverflow специально, чтобы поделиться своими знаниями об простом JavaScript.
Chrome, Firefox и Opera не поддерживают объекты Microsoft. Ты используешь
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
В chrome эта строка дает мне эту ошибку:
ReferenceError: объект ActiveXObject не определен
Вам нужно будет получить ваши данные в кросс-браузерном режиме. Это может быть использование jQuery или простой Javascript