【发布时间】:2012-12-15 23:21:59
【问题描述】:
我在下面有这段代码,它假设能够通过使用 ajax 从另一个页面检索模块来在下拉菜单中显示模块列表:
下面给出的代码
$(document).ready( function(){
jQuery.ajax({
type: "post",
url: "module.php",
success: function(response){
jQuery('#modulesDrop').append(response);
}
});
});
...
<?php
$moduleHTML = "";
$moduleHTML .= '<select name="modules" id="modulesDrop">'.PHP_EOL;
$moduleHTML .= '<option value="">Please Select</option>'.PHP_EOL;
$moduleHTML .= '</select>';
?>
module.php 页面:
<?php
// connect to the database
include('connect.php');
/* check connection */
if (mysqli_connect_error()) {
printf("Connect failed: %s\n", mysqli_connect_error());
die();
}
$moduleactive = 1;
$sql = "SELECT ModuleId, ModuleNo, ModuleName FROM Module WHERE ModuleActive = ? ORDER BY ModuleNo";
$sqlstmt=$mysqli->prepare($sql);
$sqlstmt->bind_param("i", $moduleactive);
$sqlstmt->execute();
$sqlstmt->bind_result($dbModuleId,$dbModuleNo,$dbModuleName);
$moduleHTML = "";
while($sqlstmt->fetch()) {
$moduleHTML .= sprintf('<option value="%1$s_%2$s_%3$s">%1$s - %2$s</option>'.PHP_EOL, $dbModuleNo, $dbModuleName, $dbModuleId);
}
echo $moduleHTML;
$sqlstmt->execute();
?>
我不明白的是,下拉菜单设法在所有主要浏览器中显示模块列表,但 Internet Explorer 仍显示“请选择”选项。为什么在 Internet Explorer 中下拉菜单无法显示列表?
更新:
我将废弃 ajax 方法,将主要的 php 代码粘贴到原始脚本中
【问题讨论】:
-
你看浏览器的消息日志了吗?
-
@wallyk 我如何访问它?
-
@user1930247 按 F12 或在 IE 的 Menu->Tools->Developer Tool 下找到它。还有一件事,您还可以提醒响应以检查正在涌入的数据。检查 jQuery 是否正确添加到页面上。让我知道你是否可以通过日志修复它
-
@swapnesh 好的,我按 f12 打开了窗口,我应该选择哪个选项卡来查看消息?我进入了控制台选项卡,但那里没有出现错误
-
@user1930247 更改 echo $moduleHTML; $sqlstmt->执行(); TO $sqlstmt->执行();回声 $moduleHTML;然后告诉我
标签: php jquery ajax cross-browser mysqli