Мне нужна ваша помощь .. В моем файле просмотра я использую ajax для запроса данных на контроллер. Вот код Аякса:Метод Codeigniter в контроллере не вызывает метод в модели
<script type="text/javascript">
$(document).ready(function(){
$('#selCat').change(function(){
var id = $(this).val(); // selected name from dropdown #table
$.ajax({
url: '<?php echo base_url();?>'+'index.php/client/ajax_subcat', // or "resources/ajax_call" - url to fetch the next dropdown
async: false,
type: "POST", // post
data: {id:id},
dataType: "html", // return type
success: function(data) { // callback function
$('#selSubCat').html(data);
}
})
});
});
</script>
Тем временем функция ajax_subcat() в контроллере клиента, как это:
public function ajax_subcat(){
// $this->load->view('content/ajax_subcat');
if($_POST){
$catcode = $this->input->post('id',TRUE);
$result = $this->preference_model->getSubCategory3($catcode);
//$result = $this->preference_model->getSubCategory2();
echo "<script type='text/javascript'>alert('$catcode');</script>";
//echo "<script type='text/javascript'>alert('$result->cat2name_EN');</script>";
foreach ($result as $row) {
echo $row->cat3name_EN;
# code...
}
}
//$this->load->view('content/');
}
}
Как вы можете видеть в контроллере, я пытался вызвать функцию getSubCategory3 ($ catcode); в моей модели, но эта строка не была выполнена. Я попытался использовать оповещение, чтобы узнать, что произошло.
потому что первые три эха были выполнены, я получил предупреждение. Но, кажется, код остановился, когда встретился
$result = $this->preference_model->getSubCategory3($catcode);
, а затем ничего не вернулся к виду.
функция в моем preference_model, как это:
function getSubCategory3($cat2code){
$return = array();
$queryString = "SELECT id, cat3code, cat3name_EN FROM `subcategory` WHERE cat2code = '".$cat2code."' ORDER by cat3name_EN";
echo $queryString;
$query = $this->db->query($queryString);
if($query->num_rows()>0){
foreach($query->result() as $row){
array_push($return, $row);
}
}
return $return;
}
ничего не было выполнено в preference_model.
Кто-нибудь знает, что не так с моим кодом?
Примечание:
Я загрузил модель в функции __construct() моего контроллер клиента
function __construct(){
parent::__construct();
$this->load->database();
$this->load->helper('url');
$this->load->model('preference_model');
}
Когда я изменил эхо-уведомление в контроллере эхо строки, ничего не печатаются на моем экран.
это preference_model или reference_model –
$ this-> load-> model ('Model_name'); вы установили модель? –
Это preference_model, и я загрузил его в свой контроллер. Я отредактировал мой вопрос более подробно –