我正在尝试使用AJAX填充文档的下拉列表。
但是我无法访问我的Supplies_controller,因为我被禁止了。
我的populate_dropdown.js文件位于与我的Supplies_controller文件不同的文件夹中。
这是我一直在犯的错误
这是我在populate_dropdown.js
中的代码$(document).ready(function() {
$.ajax({
url: "<?php echo base_url('Supplies_controller/getCategory'); ?>",
dataType: 'json',
success: function(data) {
alert(data);
$(data).each(function(){
$("#category").append($('<option>', {
value: this.id,
text: this.category,
}));
})
}
});
});
这是我的Supplies_controller中的代码
<?php
class Supplies_controller extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->helper('url');
$this->load->model('supplies_model');
}
public function getCategory(){
$categories = $this->supplies_model->getCategory();
echo json_encode($categories);
}
public function getSubcategory(){
$category_id = $this->input->post('category');
$subcategories = $this->supplies_model->getSubCategory($category_id);
echo json_encode($subcategories);
}
public function getSupply(){
$subcategory_id = $this->input->post('category');
$supplies = $this->supplies_model->getSubCategory($subcategory_id);
echo json_encode($supplies);
}
这是我的文件的层次结构
我的Supplies_controller位于控制器文件夹内,我的populate_dropdown.js文件位于js文件夹内。
请帮我找出错误。感谢。
答案 0 :(得分:1)
尝试将base变量用于base_url
对于视图文件脚本
<script type="text/javascript">
$(document).ready(function() {
var base_url = "<?php echo base_url();?>";
$.ajax({
url: base_url + "supplies_controller/getCategory",
dataType: 'json',
success: function(data) {
alert(data);
$(data).each(function(){
$("#category").append($('<option>', {
value: this.id,
text: this.category,
}));
})
}
});
});
</script>
或者对于java脚本文件
$(document).ready(function() {
$.ajax({
url: "supplies_controller/getCategory",
dataType: 'json',
success: function(data) {
alert(data);
$(data).each(function(){
$("#category").append($('<option>', {
value: this.id,
text: this.category,
}));
})
}
});
});
在你的config.php上设置你的base_url。
$config['base_url'] = 'http://localhost/yourproject/';
注意:确保您的资源文件夹位于应用程序文件夹的一侧。
答案 1 :(得分:0)
尝试更改此
url: "<?php echo base_url('Supplies_controller/getCategory'); ?>",
到这个
url: "<?php echo site_url('Supplies_controller/getCategory'); ?>",
啊,我现在看到你无法在javascript中运行php代码。
如果你想在javascript中使用基本网址,你需要这样的东西
url: location.protocol + "//" + location.host + "/ppmp/index.php/Supplies_controller/getCategory" ,
答案 2 :(得分:0)
您需要在包含js
之前复制网址$(document).ready(function() {
$.ajax({
url: URL,
dataType: 'json',
success: function(data) {
alert(data);
$(data).each(function(){
$("#category").append($('<option>', {
value: this.id,
text: this.category,
}));
})
}
});
});
然后在JS文件中,您可以使用变量URL
weaveByToString( "To[cxfbean:reservationService]" )