robs99 Posted September 5, 2008 Share Posted September 5, 2008 Hey, i was wondering if anyone can help me out. I have a simple ajax shoutbox which works fine on firefox & chrome, but fails to send or receive data on IE. does anyone have any suggestions? here's a live example, you'll see it's working fine on FF & chrome: http://www.it-leaked.com/ajaxsb.php here is the code: 1 2 //start the session 3 session_start(); 4 ?> 5 6 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 7 <html xmlns="http://www.w3.org/1999/xhtml"> 8 <head> 9 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 10 <title>Shoutbox</title> 11 <style type="text/css"> 12 body 13 { 14 font-family: Verdana; 15 font-size: 7pt; 16 } 17 .shout 18 { 19 margin: 5px; 20 } 21 #scroll_box 22 { 23 overflow: auto; 24 height: 120px; 25 width: 460px; 26 border: 1px solid #333; 27 margin-top: 3px; 28 } 29 </style> 30 <script type="application/javascript"> 31 var xmlHttp; 32 33 function getShouts() 34 { 35 xmlHttp = GetXmlHttpObject(); 36 if (xmlHttp == null) 37 { 38 alert("Could not create a XmlHttpObject"); 39 return; 40 } 41 //set the get url var 42 var url="shoutbox.php?q=get"; 43 xmlHttp.onreadystatechange = stateChanged; 44 45 //open the $_GET['get'] page 46 xmlHttp.open("GET",url,true); 47 xmlHttp.send(null); 48 } 49 50 function insertShout() 51 { 52 xmlHttp2 = GetXmlHttpObject(); 53 if (xmlHttp2 == null) 54 { 55 alert("Could not create a XmlHttpObject"); 56 return; 57 } 58 if (document.getElementById("shout").value == "" 59 || document.getElementById("shout").value == null) 60 { 61 alert("ERROR: No shout entered."); 62 return; 63 } 64 //set the get url var 65 var shout = document.getElementById("shout").value; 66 var url = "shoutbox.php?q=insert&shout="+shout; 67 xmlHttp2.onreadystatechange = stateChanged; 68 69 //open the $_GET['get'] page 70 xmlHttp2.open("GET",url,true); 71 xmlHttp2.send(null); 72 73 getShouts(); 74 document.getElementById("shout").value = ""; 75 } 76 77 function stateChanged() 78 { 79 if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") 80 { 81 //fill the div scroll box with the formatted shouts or "xmlHttp.responseText" 82 document.getElementById("scroll_box").innerHTML = xmlHttp.responseText; 83 } 84 } 85 86 function GetXmlHttpObject() 87 { 88 var xmlHttp = null; 89 try 90 { 91 //Firefox, Opera 8.0+, Safari 92 xmlHttp = new XMLHttpRequest(); 93 } 94 catch (e) 95 { 96 //Internet Explorer 97 try 98 { 99 xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); 100 } 101 catch (e) 102 { 103 xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 104 } 105 } 106 return xmlHttp; 107 } 108 109 //get the shouts for when the box is loaded initially 110 getShouts(); 111 112 function runme() 113 { 114 getShouts(); 115 setTimeout("runme()",3000); 116 } 117 118 setTimeout("runme()",3000); 119 </script> 120 </head> 121 122 <body> 123 124 125 126 //mysql info 127 $db_host = "REMOVED"; 128 $db_name = "REMOVED"; 129 $db_username = "REMOVED"; 130 $db_password = "REMOVED"; 131 132 //connect to the database 133 $conn = mysql_connect($db_host,$db_username,$db_password) or die(mysql_error()); 134 mysql_select_db($db_name, $conn) or die(mysql_error()); 135 136 //set the timezone for the script 137 putenv("TZ=America/Los_Angeles"); 138 139 //number of shouts to display 140 $i = 50; 141 142 //function to query the database for the shouts. only parameter is amount of shouts 143 function get_shouts($i) 144 { 145 //the sql query to pull all the info from table `shoutbox` 146 $sql = mysql_query("SELECT * FROM 2 ORDER BY id DESC LIMIT $i"); 147 148 //while there are still rows to assign to the $row var, do it 149 while ($row = mysql_fetch_array($sql)) 150 { 151 //set the row vars 152 $user = $row['user']; 153 $shout = $row['shout']; 154 $time = $row['timestamp']; 155 156 //echo the formatted shouts 157 echo "<div class=\"shout\">".$user." [".$time."]<br />".htmlentities($shout)."</div>\n"; 158 } 159 } 160 161 //function to insert the shouts 162 function insert_shout($user,$shout,$time) 163 { 164 $shout = mysql_real_escape_string($shout); 165 mysql_query("INSERT INTO 2 (user,shout,timestamp) VALUES ('$user','$shout','$time')"); 166 } 167 168 //url system for $_GET querys 169 if ($_GET['q'] == "archive") 170 { 171 //archive page 172 echo "<!--archive-->\n\n"; 173 } 174 elseif ($_GET['q'] == "get") 175 { 176 //get query 177 echo "<!--get-->\n\n"; 178 179 //get the formatted shouts while var $i is the amount of shouts to display 180 get_shouts($i); 181 } 182 elseif ($_GET['q'] == "insert") 183 { 184 //insert query 185 echo "<!--insert-->\n\n"; 186 187 //get the username, shout and set the timestamp and then insert it all into the database 188 insert_shout($_SESSION['user'],$_GET['shout'],date("g:i a")); 189 } 190 else 191 { 192 //default page 193 echo "<!--default-->\n\n"; 194 195 if (isset($_SESSION['user'])) 196 { 197 echo "Welcome, ".$user = $_SESSION['user']; 198 } 199 else 200 { 201 $_SESSION['user'] = "Guest"; 202 echo "Welcome, ".$user = $_SESSION['user']; 203 } 204 205 //echo the form and fill the div scroll box with the formatted shouts 206 echo "<br /><input type=\"text\" size=\"55\" id=\"shout\" /> 207 <input type=\"button\" value=\"Submit Query\" onclick=\"insertShout();\" /> 208 <div id=\"scroll_box\"></div>"; 209 } 210 211 ?> 212 213 </body> 214 </html> I hope someone can help me thanks in advance Quote Link to comment Share on other sites More sharing options...
corbin Posted September 7, 2008 Share Posted September 7, 2008 Can you do some debugging? Like put in some random alert()s to see where IE stops executing? Quote Link to comment Share on other sites More sharing options...
ssameera Posted March 14, 2009 Share Posted March 14, 2009 It may be because of Ajax caching which is present only in Internet Explorer. Try this link : http://sameera-programming.blogspot.com/2009/01/ajax-not-working-in-internet-explorer.html Quote Link to comment Share on other sites More sharing options...
corbin Posted March 14, 2009 Share Posted March 14, 2009 You bumped this 5 months to promote your blog? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.