webForumDet fria alternativet
Logga in / Bli medlem

AJAX vill inte uppdatera

JavaScript

3 svar · 430 visningar · startad av whistler

Medlem sedan okt. 200148 inlägg
Frågan#1

Hej

Har en kalender som jag försöker integrera med ajax. Tanken är att när man klickar på ett datum så ska funktionen hamtadatum() köras och filen getdatum.asp ska hämta de "events" som finns under denna dag och skriva ut i en div (ajaxoutput). Detta fungerar bra när man trycker på första datumet, men sedan när jag försöker trycka igen så händer ingenting. Vad kan det vara för fel?

Bifogar kod:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript">
<!-- // Required to be compliant with XHTML-->
 var xmlHttp=null; // Defines that xmlHttp is a new variable.
 // Try to get the right object for different browser
 try {
    // Firefox, Opera 8.0+, Safari, IE7+
    xmlHttp = new XMLHttpRequest(); // xmlHttp is now a XMLHttpRequest.
 } catch (e) {
    // Internet Explorer
    try {
       xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
       xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
 }
 xmlHttp.onreadystatechange = function() {
    if (xmlHttp.readyState == 4)
       try { // In some instances, status cannot be retrieved and will produce an error (e.g. Port is not responsive)
          if (xmlHttp.status == 200) {
             //Set the main HTML of the body to the info provided by the AJAX Request
             document.getElementById("ajax_output").innerHTML = xmlHttp.responseText;
          }
       } catch (e) {
          document.getElementById("ajax_output").innerHTML = "Error on Ajax return call : " + e.description;
       }

 }
 
 function hamtadatum(datum)
{
 xmlHttp.open("get","getdatum.asp?datum=" + datum); // .open(RequestType, Source);
 xmlHttp.send(null); // Since there is no supplied form, null takes its place as a new form.
}
</script>

</head>
<body>

<div id="calendar_frame">
<table id="calendar1" border="0" cellspacing="0" cellpadding="0">
<caption class="caption_cal">
<a href="?date=2008-02-13"><<</a>mars <a href="?date=2008-04-13">>></a>
</caption>
<tr>
	<th>M</th>
	<th>T</th>
	<th>O</th>
	<th>T</th>
	<th>F</th>
	<th>L</th>
	<th>S</th>
</tr>
<tr>

        <td class='cal_blanks'>&nbsp;</td>
        <td class='cal_blanks'>&nbsp;</td>
        <td class='cal_blanks'>&nbsp;</td>
        <td class='cal_blanks'>&nbsp;</td>
        <td class='cal_blanks'>&nbsp;</td>
        <td  class="cal_day"><a href="#" onclick="javascript:hamtadatum('1');return false;">1</a></td>
        <td  class="cal_day"><a href="#" onclick="javascript:hamtadatum('2');return false;">2</a></td>
      </tr><tr>
        <td  class="cal_day"><a href="#" onclick="javascript:hamtadatum('3');return false;">3</a></td>
        <td  class="cal_day"><a href="#" onclick="javascript:hamtadatum('4');return false;">4</a></td>
        <td  class="cal_day"><a href="#" onclick="javascript:hamtadatum('5');return false;">5</a></td>
        <td  class="cal_day"><a href="#" onclick="javascript:hamtadatum('6');return false;">6</a></td>
        <td  class="cal_day"><a href="#" onclick="javascript:hamtadatum('7');return false;">7</a></td>
        <td  class="cal_day"><a href="#" onclick="javascript:hamtadatum('8');return false;">8</a></td>
        <td  class="cal_day"><a href="#" onclick="javascript:hamtadatum('9');return false;">9</a></td>
      </tr><tr>
        <td  class="cal_day"><a href="#" onclick="javascript:hamtadatum('10');return false;">10</a></td>
        <td  class="cal_day"><a href="#" onclick="javascript:hamtadatum('11');return false;">11</a></td>
        <td  class="cal_day"><a href="#" onclick="javascript:hamtadatum('12');return false;">12</a></td>
        <td class='cal_today'>13</td>
        <td  class="cal_day"><a href="#" onclick="javascript:hamtadatum('14');return false;">14</a></td>
        <td  class="cal_day"><a href="#" onclick="javascript:hamtadatum('15');return false;">15</a></td>
        <td  class="cal_day"><a href="#" onclick="javascript:hamtadatum('16');return false;">16</a></td>
      </tr><tr>
        <td  class="cal_day"><a href="#" onclick="javascript:hamtadatum('17');return false;">17</a></td>
        <td  class="cal_day"><a href="#" onclick="javascript:hamtadatum('18');return false;">18</a></td>
        <td  class="cal_day"><a href="#" onclick="javascript:hamtadatum('19');return false;">19</a></td>
        <td  class="cal_day"><a href="#" onclick="javascript:hamtadatum('20');return false;">20</a></td>
        <td  class="cal_day"><a href="#" onclick="javascript:hamtadatum('21');return false;">21</a></td>
        <td  class="cal_day"><a href="#" onclick="javascript:hamtadatum('22');return false;">22</a></td>
        <td  class="cal_day"><a href="#" onclick="javascript:hamtadatum('23');return false;">23</a></td>
      </tr><tr>
        <td  class="cal_day"><a href="#" onclick="javascript:hamtadatum('24');return false;">24</a></td>
        <td  class="cal_day"><a href="#" onclick="javascript:hamtadatum('25');return false;">25</a></td>
        <td  class="cal_day"><a href="#" onclick="javascript:hamtadatum('26');return false;">26</a></td>
        <td  class="cal_day"><a href="#" onclick="javascript:hamtadatum('27');return false;">27</a></td>
        <td  class="cal_day"><a href="#" onclick="javascript:hamtadatum('28');return false;">28</a></td>
        <td  class="cal_day"><a href="#" onclick="javascript:hamtadatum('29');return false;">29</a></td>
        <td  class="cal_day"><a href="#" onclick="javascript:hamtadatum('30');return false;">30</a></td>
      </tr><tr>
        <td  class="cal_day"><a href="#" onclick="javascript:hamtadatum('31');return false;">31</a></td>
        <td class=''cal_blanks'>&nbsp;</td>
        <td class=''cal_blanks'>&nbsp;</td>
        <td class=''cal_blanks'>&nbsp;</td>
        <td class=''cal_blanks'>&nbsp;</td>
        <td class=''cal_blanks'>&nbsp;</td>
        <td class=''cal_blanks'>&nbsp;</td>
</tr>
</table></div>

<div id="ajax_output">
Waiting to be replaced by Ajax Call
</div>

</body><br/>
</html>
Medlem sedan juni 20019 519 inlägg
#2

Jag gissar på att du använder IE. IE spara resultatet.

din: "getdatum.asp?datum=" + datum

får du lägga in en "random" querystring:
"getdatum.asp?datum=" + datum + "&r=" + Math.random()

Medlem sedan okt. 200148 inlägg
#3

Hej och tack för snabbt svar.

Lade till random, men det fungerar fortfarande inte. Måste vara något fel med ajaxanropet. Är det något man måste nollställa efter att man har gjort första anropet?

Medlem sedan okt. 200148 inlägg
#4

någon?

281 ms totalt · 4 externa anrop · v20260731065814-full.5386d3bf
141 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
141 ms — ändringar (db)