Intereting Posts
Как показать информацию о заказе на странице успеха проверки в Opencart 2x Количество столбцов mysql.proc неверно. Ожидаемое 20, найдено 16. Таблица, вероятно, повреждена Объединение значений многомерных массивов в PHP Длительный фоновый скрипт PHP блокирует другие страницы PHP до тех пор, пока он не будет завершен Symfony2: отправьте запрос HTTP PHP SOAP – добавление TicketHeader «Перегрузка» частного метода в PHP Драйвер mysqlnd имеет только одно расширение api (pdo_mysql) Как сохранить данные в области приложения в PHP? Php curl set ssl версия Печать результатов немедленно (php) Как я могу получить phpunit.bat после установки phpunit через PEAR? Наследование и статические методы и свойства PHP Необходимость просмотра офисных документов MS в системе управления документами на базе php Zend form bootstrap annotation datepicker «Объект, предоставленный помощнику Escape, но флаги не позволяют рекурсию»

Ajax Не работает в Chrome, Firefox и Opera

ниже моя функция на главной странице. Этот код отлично работает в 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