我正在处理类似于选择的问题: Country->state->city (通过ajax)在Codeigniter中,我想在下拉列表中加载 Series->season_num->episodes ,使用ajax我得到 season_num 的结果选择 series 但我的ajax或查询(不要't know which) is not running right i'获取空记录,当它将数据返回到ajax为 success 时,我甚至没有在控制台中打印它 .
这是我的Ajax功能:
<script>
function selectSeasons(series_id)
{
// alert(series_id);
if(series_id != "-1")
{
loadData('season',series_id);
$("#city_dropdown").html("<option value='-1'>Select Episode</option>");
}
else
{
$("#season_dropdown").html("<option value='-1'>Select Season Num</option>");
$("#episode_dropdown").html("<option value='-1'>Select Episode</option>");
}
}
function selectEpisodes(season_id)
{
if(season_id != "-1"){
loadData('episode',season_id);
}
else
{
$("#episode_dropdown").html("<option value='-1'>Select Episode</option>");
}
}
function loadData(loadType,loadId)
{
// season as type and option as its id
var dataString = 'loadType='+ loadType +'&loadId='+ loadId;
// alert(dataString);
$("#"+loadType+"_loader").show();
$("#"+loadType+"_loader").fadeIn(400).html('Please wait... ');
$.ajax({
type: "POST",
url: "<?php echo base_url() ?>seasons/loadData",
data: dataString,
cache: false,
success: function(result)
{
console.log('success');
console.log(result);
$("#"+loadType+"_loader").hide();
$("#"+loadType+"_dropdown").html("<option value='-1'>Select "+loadType+"</option>");
$("#"+loadType+"_dropdown").append(result);
},
fail: function(result)
{
console.log('Fail');
console.log(result);
}
});
}
这是我的控制器功能: Season/loadData
public function loadData()
{
$session_id = $this->session->userdata('id');
if (isset($session_id))
{
$loadType = $_POST['loadType'];
$loadId = $_POST['loadId'];
$HTML="";
if ($loadType = "season")
{
$result = $this->model_season->getSeasonData($loadType,$loadId);
if($result->num_rows() > 0)
{
// print_r($result->result());
// die();
foreach($result->result() as $list)
{
$HTML.="<option value='".$list->season_num_id."'>".$list->season_num."</option>";
}
}
echo $HTML;
}
else
{
$result = $this->model_season->getEpisodeData($loadType,$loadId);
// echo $result;
if($result->num_rows() > 0)
{
foreach($result->result() as $list)
{
$HTML.="<option value='".$list->episodes_id."'>".$list->episode."</option>";
}
}
echo $HTML;
}
}
else
{
redirect('user_authentication');
}
}
这是我的模型类,我从db获取结果:
function getSeasonData($loadType,$loadId)
{
$fieldList ='season_num_id,season_num';
$table ='season_num';
$fieldName ='seasons_id_fk';
$orderByField ='season_num';
$this->db->select($fieldList);
$this->db->from($table);
$this->db->where($fieldName, $loadId);
$this->db->order_by($orderByField, 'asc');
$query=$this->db->get();
if ($query)
{
return $query;
}
else
{
return FALSE;
}
}
function getEpisodeData($loadType,$loadId)
{
$fieldList ='episodes_id, episode';
$table ='episodes';
$fieldName ='season_num_id_fk';
$orderByField ='episode';
$this->db->select($fieldList);
$this->db->from($table);
$this->db->where($fieldName, $loadId);
$this->db->order_by($orderByField, 'asc');
$query=$this->db->get();
if ($query->row() > 0)
{
return $query;
}
else
{
return FALSE;
}
}
第一次选择 Series 我获得选项,例如1,2,3,4但是当我选择这些数字以获得更多剧集时,它只返回它没有失败的ajax请求,它甚至不打印 Else 条件中的任何内容 . 请帮忙吗?如果需要任何其他文件,请告诉我 . 谢谢
1 回答
在ajax调用中使用错误:而不是失败:获取是否有任何错误
在Codeigniter Note : 如果php代码有任何错误,那么它将返回500状态作为响应,因此ajax success函数无法处理此响应并将其赋予错误函数 . 但正如您使用的代码失败那样,这就是为什么你没有得到任何日志 .