Javascript 级联下拉列表未在IE 9中填充(Codeigniter)
我在Codeigniter中创建了一个级联下拉列表,但是第二个下拉列表没有在IE9和IE8中填充。以下是相关控制员:Javascript 级联下拉列表未在IE 9中填充(Codeigniter),javascript,php,ajax,codeigniter,internet-explorer,Javascript,Php,Ajax,Codeigniter,Internet Explorer,我在Codeigniter中创建了一个级联下拉列表,但是第二个下拉列表没有在IE9和IE8中填充。以下是相关控制员: public function buildDropEquipment($class) // This builds the dropdown field for newly added equipment { //set selected class id from POST $class = $this->input-&g
public function buildDropEquipment($class)
// This builds the dropdown field for newly added equipment
{
//set selected class id from POST
$class = $this->input->post('class',TRUE);
error_log("class variable: ".$class." \n", 3, "/Applications/MAMP/logs/php_error.log");
//run the query for the cities we specified earlier
$this->load->model('admin/MEquipment');
$equipmentData['equipmentDrop']=$this->MEquipment->getEquipmentByClass($class);
$output = null;
foreach ($equipmentData['equipmentDrop']->result() as $row)
{
//here we build a dropdown item line for each query result
$output .= "<option value='".$row->type."'>".$row->type."</option>";
}
echo $output;
}
以下是我的观点:
<script type="text/javascript">
$(document).ready(function() {
$("#class").change(function(){
/*dropdown post */
$.ajax({
url:"<?php echo base_url(); ?>index.php?/admin/buildDropEquipment",
data: {class: $(this).val()},
type: "POST",
success: function(data){
$("#type").html(data);
}
});
});
});
</script>
</head>
<body>
<!--machine class dropdown-->
<?php $classDrop = array('none' => 'Select One') + $classDrop; ?>
<dl>
<dt><strong><?php echo form_label('Equipment Class', 'class');?></strong></dt>
<dd>
<?php echo form_dropdown('class', $classDrop,'','class="required" id="class"'); ?>
</dd>
</dl>
<!--equipment type dropdown-->
<dl>
<dt><strong><?php echo form_label('Equipment Type', 'type');?></strong></dt>
<dd>
<select name="type" id="type">
<option value="">Select Equipment Class Above</option>
</select>
</dd>
</dl>
有人能告诉我为什么它在IE 9和IE 8中不能正常工作吗?因为“class”在javascript中是一个保留关键字,您应该将其更改为class\u name:
data: {class_name: $(this).val()},
通过将IE 9的设置更改为兼容模式,可以在IE 9上解决此问题。
IE 9->设置->F12开发者工具->浏览模式->然后选择IE 9兼容性。它似乎适用于带有级联下拉菜单的ADF应用程序您的Javascript控制台中是否有任何错误?没有。控制台中没有错误。如果有用的话,我采用了以下教程中的代码:尝试引用您的类,如以下数据:{'class':$this.val},我将其和相应的表单输入字段值更改为machine_类。然而,它在IE 8或9中仍然不能正常工作。我只是尝试了一下,它对我有效。也许只是缓存。尝试CTRL+F5它仍然不适用于我-我必须使用Browserstack测试它,它允许您在各种浏览器上对站点进行实时测试…并且它为每个新测试加载一个新的虚拟机。所以,我不认为是缓存。我不知所措。在你的php代码中还有其他东西,buildDropEquipment函数有一个必需的参数$class,但在你的js代码中没有它的迹象,我知道你在使用POST方法,所以也许你应该先解决这个问题,并尝试返回一个硬编码的值,只用于测试。公共函数buildDropEquipment{echo'SUCCESS';die;}我确实使用BrowserStack尝试了您的代码,它对我来说很好。如果你能和我分享一些屏幕截图,甚至你的屏幕,那么调试就容易多了。你想让那些不想让浏览器保持最新的用户仅仅为了你的应用程序而修改它吗?