AJAX problemacia

Kavhann

Registered
Здравейте,

Имам проблем с AJAX.
В момента изучавам AJAX, като си мислех, че той ще работи еднакво за всички браузъри. Уви, не. Имам страничка, която при кликването на бутон прави AJAX заявка, която изписва текс в <div> елемент. Страницата сработва с FireFox но при Internet Explorer не сработва. Въпросът ми е, как мога да накарам AJAX-a да сработи и под Експлорър?
 
здрасти
не що явно не правиш правилно
http://www.w3schools.com/Ajax/ajax_example_suggest.asp
разгледай този линк и ще видиш как точно се прави http request-а за интернет експлорер.
ето и конкретно за него и браузарите
http://www.w3schools.com/Ajax/ajax_browsers.asp
 
Не знам къде греша...ето я функцията, чрез която създавам xml обект:

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;
}

Още по-интересното, е че когато заредя страницата си чрез Експлорър-а съм задал в тялото на html-a следното:

<body onload="javascript:function()">

където function() прави AJAX заявката. Тази заявка сработва. По-долу в кода има бутони които са нещо от типа:

<а href="jacascript:function()">бутон</а>

този път AJAX заявката НЕ сработва...това само под Експорър-а!!!

PLEASE HELP!!!
 
я ми кажи какво точно ти връща страницата към която пращаш заявката.
 
Заявката е настроена да връща следното:

<?php
echo '<p class="style20" style="display: inline">TEXT</p>';
?>

PHP файл, който принтира html код.
 
Значи всеки един проблем както казва един приятел винаги започва от Интернет Експлорър!!!

Какъв е проблема...виж следния код:

<div>
<p class="small2" style="display: inline">Език</p>
<select class="small2">
<option onclick="javascript:pri(1)"><div id="1">Български</div>
<option onclick="javascript:pri(2)"><div id="2">English</div>
</select>
</div>

Тези редове дефинират select опция, където потребителя може да избира между Български и Английски език. При кликването на кой да е от двата езика се извиква javascript, който прави AJAX. Така това сработва при FireFox, ноооо при Експлорър-а НЕ...защо ли? Защото Експлоръра е наследник на интелекта на Майкрософт.

Работата сработва със следния код:
<div>
<p class="small2" style="display: inline"><a href="javascript:pri(1)">Български</a></p>
<p class="small2" style="display: inline"><a href="javascript:pri(2)">English</a></p>
</div>

Тъй, проблемът се оказа браузъра...нямам думи. Как да извикам javascript-a в <select> при извикване на някой от езиците??? така че да сработи под firefox и да задоволи претенциите на експлорър?
 
Проблема е, че нямаш затварящети тагове </option>. Firefox вижда, че ги нямаш и си ги допълва, но IE не.
 
Пак не сработва, кодът ми е:

<div>
<div id="0"><p class="small2" style="display: inline">Език</p></div>
<select class="small2">
<option onclick="javascript:pri(1)"><div id="1">Български</div></option>
<option onclick="javascript:pri(2)"><div id="2">English</div></option>
</select>
</div>

пак не ще...
 
Работата е следната:

Internet Explorer не е чак толкова умен затова ако имате проблем потърсете първо там.

Изходът е да си направите една форма в която да сложите <select>. При селектиране на някой от опциите в селекта извиквате javascript, който взима value-то на option-a и в зависимост от него прави едно или друго. Истината е, че ако Explorer беше по-умен нямаше да има нужда от такива скриптове и всичко щеше да се прави с onchange="do this".

Ок, те това, сори за краткото обяснение, но нямах особенно време. Надявам се и това е в полза.
 
извинявай но малко неразбрах каква е тази врътка която правиш
неможели при самия селект да му сложиш да изпълнява функцията

<select onchange="pri(this.value)" >
<option value="1">Български</option>
<option value="2">English</option>
</select>
 
Начина на mute трябва да сработи, туко що имах подобен проблем с onclick в option. Когато е ончейндж в селект-а работи ;)
 

Back
Горе