Php 在选择框codeigniter中动态获取数据
我有两个选择框,如果我选择一个选项,它将根据选项给我结果,然后结果将显示在第二个选择框中。我该怎么做? 我想,我必须做一个onchange函数,但我不知道如何从JavaScript中的控制器获取数据Php 在选择框codeigniter中动态获取数据,php,javascript,jquery,ajax,codeigniter,Php,Javascript,Jquery,Ajax,Codeigniter,我有两个选择框,如果我选择一个选项,它将根据选项给我结果,然后结果将显示在第二个选择框中。我该怎么做? 我想,我必须做一个onchange函数,但我不知道如何从JavaScript中的控制器获取数据 class StockInController extends MY_Controller { function index(){ $data['main_content'] = 'stockInView'; $this->load->model
class StockInController extends MY_Controller {
function index(){
$data['main_content'] = 'stockInView';
$this->load->model('supplierModel');
$query = $this->supplierModel->getAllSuppliers();
if ($query){
$data['records1'] = $query;
}
$this->load->model('categoryModel');
$query = $this->categoryModel->getAllCategories();
if ($query){
$data['records2'] = $query;
}
$this->load->model('itemsModel');
$query = $this->itemsModel->getAllItems();
if ($query){
$data['records3'] = $query;
}
$this->load->view('dashboardTemplate/template',$data);
}
function addStockIn(){
//getting parameters from view
$data = array(
'item_name' => $this->input->post('item_name'),
'cat_id' => $this->input->post('cat_id')
);
//$is_ajax = $this->input->post('ajax'); //or use this line
//$this->input->is_ajax_request();
$result = array();
$this->load->model('stockInModel');
$query = $this->stockInModel->addStocktoDB($data);
if ($query){ //&& any other condition
$result['res'] = 1;//process successful - replace 1 with any message
} else {
$result['res'] = 0;//process failed - replace 0 with any message
}
echo json_encode($result);//at the end of the function.
}
}
以下是视图:
<div class="control-group">
<label for="selsear" class="control-label">Select a Category</label>
<div class="controls">
<select name="select1" id="seslsear" class='cho'>
<option id = "y" value="0">--Select--</option>
<?php foreach($records2 as $r) { ?>
<option value="<?=$r->cat_id?>"><?=$r->cat_name?></option>
<?php } ?>
</select>
</div>
</div>
<div class="control-group">
<label for="selsear" class="control-label">Select an item</label>
<div class="controls">
<select name="select1" id="selsear" class='cho'>
<option id = "y" value="0">--Select--</option>
<?php foreach($records3 as $r) { ?>
<option value="<?=$r->item_id?>"><?=$r->item_name?></option>
<?php } ?>
</select>
</div>
</div>
在ajax的成功中,您必须编写一个关于更改选择框和馈送数据的函数
$('#selsear').change(function() {
var form_data = {
item_name: $('#item_name').val(),
cat_id: $('#selsear').val()
};
$.ajax({
url:'controller_name/function_name',
data:form_data,
datatype:'application/json',
success:function(data){
$.each(data,function(i){
htmlString="<option value='"+data[i]['item_id']+"'>'"+data[i]['item_name']+"'</option>"
});
$("#selsear").html(htmlString);
}
});
控制器函数名是从控制器检索数据的函数名
我希望这对你有帮助 您希望如何通过使用javascript或jquery和ajax加载数据?如果我选择一个特定类别。。它将在第二个选择框中显示该类别的所有项目名称。。我只想要这个功能。url应该是controller\u name/function\u name。而且不需要在数组中的ca\u id后面加逗号来表示\u数据声明抱歉@mamdouhalramadan这是一个输入错误!您指定它是json,并且必须声明它是POST还是什么。然后,您必须将数据作为json而不是常规数组来处理。喜欢data.element而不是data[element]@mamdouhalramadan我在道歉之前就这么做了,不管怎样,这都是为了纠正错误