IE9中ajax中同步,IE9(和其他IE版本)的AJAX问题

|

我尚未在IE9,IE8和可能的IE7中使用XMLHttpRequest对象,尽管尚未在IE7中进行测试。它可以在FF4,Opera 11.01和Chrome 10中正常工作。

首先,我想解释一下我如何使用此代码。我有一个HTML选择标签,其中定义了时间。然后,当用户单击按钮时,它会使用数据库中的时间值动态更新选择。现在,这里是用于创建XMLHttpRequest对象的代码:

var xmlhttp = false;

if (window.XMLHttpRequest) {

xmlhttp = new XMLHttpRequest();

} else if (window.ActiveXObject) {

try {

xmlhttp = new ActiveXObject(\"Msxml2.XMLHTTP\");

} catch (e) {

try {

xmlhttp = new ActiveXObject(\"Microsoft.XMLHTTP\");

} catch (e) {

xmlhttp = false;

}

}

}

如您所见,如果XMLHttpRequest对象的创建失败,它将尝试创建ActiveXObject。

现在,用于发送请求和获取响应的代码:

xmlhttp.onreadystatechange = function() {

if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {

document.getElementById(time).innerHTML = xmlhttp.responseText;

}

}

xmlhttp.open(\"GET\", \"getTime.php?d=\" + str, true);

xmlhttp.send();

我将参数发送到getTime.php,并将响应写回到id = time的select标签。现在,在IE9和IE8中,它不希望使用DB中的时间来填充select标签。

编辑:

我将从getTime.php添加代码:

$username=\"something\";

$password=\"\";

$database=\"somethingDB\";

$date = $_GET[\"d\"];

$timestamp = strtotime($date);

$nextDay= $timestamp + (1 * 24 * 60 * 60);// 7 days; 24 hours; 60 mins; 60secs

$date2 = date(\'Y/n/j\', $nextDay);

$link = mysql_connect(\'localhost\', $username, $password);

if (!$link) {

die(\'Could not connect: \' . mysql_error());

}

mysql_select_db($database, $link);

$query=\"SELECT TIME(Date) FROM someTable WHERE Date >= \'\" .$date. \"\' AND Date < \'\" .$date2. \"\'\";

$result=mysql_query($query);

if (!$result) {

die(\'Could not query:\' . mysql_error());

}

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {

echo \"\" .$row[0].\"\";

}

mysql_free_result($result);

mysql_close($link);

?>

编辑2:

好的,据此我添加了包裹。现在,我还将发布代码选择标签,该标签现已包装:

<?php if (empty($_GET[\'Time1\'])) { echo \"Ura\"; } else { echo \'\' . $_GET[\'Time1\'] . \'\'; } ?>

getTime.php中的代码现在也已更改,我将仅发布已更改的部分:

echo \'\';

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {

echo \"\" .$row[0].\"\";

}

echo \'\';

如您所见,我只在陈述之前和之后添加了echo'.... \'。猜猜现在会发生什么。在FF,Opera和Chrome中,它可以正常工作,但是在IE9中,它现在可以获取值,但不会将其放在下拉菜单中,而只是将其打印为实际文本。同样,当将值打印为文本时,下拉菜单也无效。似乎它不想包含选择标记。我不明白,为什么只有IE可以呢?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值