【发布时间】:2019-06-20 12:12:02
【问题描述】:
下面的代码是关于我试图从数据库中获取数据的。第一个 Ajax 成功显示数据,但第二个(第一个 Ajax 中的 Ajax 请求)没有显示任何内容。
更多解释:
- 第一个 Ajax 通过 onchange 请求数据(工作)
-
第二个(成功函数内部)请求另一个数据,但从未传递到视图
$(document).ready(function(){ $('#idclient').change(function(){ var client=$(this).val(); $.ajax({ url : "<?php echo base_url();?>Skejuler/get_dclient", method : "POST", data : {clients: client}, async : false, dataType : 'json', success: function(data){ console.log(data); $.ajax({ url: '<?php echo base_url() ?>Skejuler/get_lastprob', method : "POST", data : {clients: client}, async: false, dataType: 'json', success: function(data){ console.log(data); var dbkosong = 'Belum ada problem'; var DLP = ''; var i; for(i=0; i<data.length; i++){ DLP += data[i].catprobc+' : '+data[i].action+' oleh '+data[i].hero+' pada '+data[i].created_at; //**is this line any wrong?** } if (!data) { $('.showLP').html(dbkosong); } else { $('.showLP').html(DLP); } }, error: function(){ alert('Database kosong!'); } }); var html = ''; var i; for(i=0; i<data.length; i++){ html += '<div class="box-body table-responsive no-padding">'+ '<table class="table table-hover">'+ '<tr>'+ '<th>ID</th>'+ '<th>'+data[i].client+'</th>'+ '</tr>'+ '<tr>'+ '<td>MONITORING</td>'+ '<td>'+data[i].moni+'</td>'+ '</tr>'+ '<tr>'+ '<td>IPPBX</td>'+ '<td>'+data[i].ippbx+'</td>'+ '</tr>'+ '<tr>'+ '<td>DATABASE</td>'+ '<td>'+data[i].ipdb+'</td>'+ '</tr>'+ '<tr>'+ '<td>MULTIMEDIA</td>'+ '<td>'+data[i].ipmm+'</td>'+ '</tr>'+ '<tr>'+ '<td>RECORDING</td>'+ '<td>'+data[i].iprec+'</td>'+ '</tr>'+ '<tr>'+ '<td>FXO</td>'+ '<td>'+data[i].ipfxo+'</td>'+ '</tr>'+ '<tr>'+ '<td>VM</td>'+ '<td>'+data[i].ipvm+'</td>'+ '</tr>'+ '<tr>'+ '<td>LOKASI ACD</td>'+ '<td>'+data[i].acd+'</td>'+ '</tr>'+ '<tr>'+ '<td>CALL CENTER</td>'+ '<td>'+data[i].callcenter+'</td>'+ '</tr>'+ '<tr>'+ '<td>PROB TERAKHIR</td>'+ '<td><span class="showLP"></span></td>'+ //**Here I'm trying to show the data from database by attr CLASS: showLP, but nothing** '</tr>'+ '<tr>'+ '<td>STAT</td>'+ '<td>'+data[i].stat+'</td>'+ '</tr>'+ '</table></div>' ; } $('.cclient').html(html); } }); }); });
我的控制器:
function get_lastprob(){
$client=$this->input->post('clients');
$result=$this->skejuler_m->get_lastprob($client);
echo json_encode($result);
}
function get_dclient(){
$client=$this->input->post('clients');
$result=$this->skejuler_m->get_dclient($client);
echo json_encode($result);
}
我的观点:
<select name="nameclient" id="idclient" class="form-control">
<?php $issetotslm = $_REQUEST["nameclient"]; ?>
<option value="" selected="selected">^^CLIENT^^</option>
<?php foreach($clients as $row) { echo '<option value="'.$row->client.'">'.$row->client.'</option>'; } ?>
</select>
我可以通过在浏览器中检查来查看 JSON 数据,但是我在脚本中做错了什么/遗漏了什么?请帮忙...
谢谢
【问题讨论】:
-
您是否尝试过
.val()或.text()而不是html(),如果是,出了什么问题? -
我想这会回答你的问题。 wordpress.stackexchange.com/questions/118772/…
-
@YashKaranke 试过了。但仍然无法正常工作。谢谢
-
我看不出这里有任何堆叠 ajax 调用的原因 - 只需将
get_dclient和get_lastprob的输出合并到一个函数中...... -
嗨,我能看看你的控制器吗,让你的生活更轻松不要发回 json,从控制器发送数据以查看在那里创建 html,然后返回到你的 ajax 响应。
标签: javascript jquery ajax codeigniter