Php 使用CodeIgniter的Jquery Ajax调用
我正在尝试设置一种方法,使我的页面上的两个表自动更新,或者如果我“异步”出错,请更正我。我需要第二到第二次更新以及。我也在使用CodeIgnighter MVC框架,至于我的表,我在使用DataTables。我的Jquery如下所示:Php 使用CodeIgniter的Jquery Ajax调用,php,codeigniter,jquery,Php,Codeigniter,Jquery,我正在尝试设置一种方法,使我的页面上的两个表自动更新,或者如果我“异步”出错,请更正我。我需要第二到第二次更新以及。我也在使用CodeIgnighter MVC框架,至于我的表,我在使用DataTables。我的Jquery如下所示: <script> function updatewaiting(){ $('.display').load('https://www.finaidtest.com/index.php/studentqueue_contr
<script>
function updatewaiting(){
$('.display').load('https://www.finaidtest.com/index.php/studentqueue_controller/data');
}
setInterval( "updatewaiting()", 1000 );
</script>
<table id='waiting' class='display'>
<thead>
<tr>
<th>ID</th>
<th>A Number</th>
<th>First Name</th>
<th>Last Name</th>
<th>Time Waiting</th>
<th>Reason for visit</th>
<th>Comments</th>
<th>Aid Year</th>
<th>Staff Comments</th>
<th>Options</th>
</tr>
</thead>
<tbody>
<?php
$options = array("" => "", 'start' => 'Start Session', 'stop' => 'Student Not Present', 'abandon' => 'End Session',);
foreach ($waiting as $row) {
?>
<tr>
<td><?php echo htmlspecialchars($row['id'], ENT_QUOTES, 'UTF-8'); ?></td>
<td><?php echo anchor('studentqueue_controller/history/' . urlencode($row['anum']) . '', htmlspecialchars($row['anum'], ENT_QUOTES, 'UTF-8'), 'target="_blank"'); ?></td>
<td><?php echo htmlspecialchars($row['first'], ENT_QUOTES, 'UTF-8'); ?></td>
<td><?php echo htmlspecialchars($row['last'], ENT_QUOTES, 'UTF-8'); ?></td>
<td><?php echo htmlspecialchars($row['SECOND'], ENT_QUOTES, 'UTF-8'); ?></td>
<td><?php echo htmlspecialchars($row['reason'], ENT_QUOTES, 'UTF-8'); ?></td>
<td><?php echo htmlspecialchars($row['studentcomments'], ENT_QUOTES, 'UTF-8'); ?></td>
<td><?php echo htmlspecialchars($row['aidyear'], ENT_QUOTES, 'UTF-8'); ?></td>
<td><?php echo htmlspecialchars($row['counselorcomments'], ENT_QUOTES, 'UTF-8'); ?></td>
<td>
<?php echo form_open('studentqueue_controller/counselorscreen/' . urlencode($row['id']) . ''); ?>
<?php echo form_dropdown('options', $options, ""); ?>
<?php echo form_submit('submit', 'Submit'); ?>
<?php echo form_close(); ?>
</td>
</tr>
<?php }
?>
</tbody>
</table>
<table id='beingseen' class='display'>
<thead>
<tr>
<th>ID</th>
<th>A Number</th>
<th>First Name</th>
<th>Last Name</th>
<th>Sign In Time</th>
<th>Staff Member</th>
<th>Start Time</th>
<th>Options</th>
</tr>
</thead>
<tbody>
<?php $options1 = array("" => "", 'continue' => 'Continue Session', 'terminate' => 'Terminate Session',);
foreach ($beingseen as $row1) {
?>
<tr>
<td><?php echo htmlspecialchars($row1['id'], ENT_QUOTES, 'UTF-8'); ?></td>
<td><?php echo htmlspecialchars($row1['anum'], ENT_QUOTES, 'UTF-8'); ?></td>
<td><?php echo htmlspecialchars($row1['first'], ENT_QUOTES, 'UTF-8'); ?></td>
<td><?php echo htmlspecialchars($row1['last'], ENT_QUOTES, 'UTF-8'); ?></td>
<td><?php echo htmlspecialchars($row1['signintime'], ENT_QUOTES, 'UTF-8'); ?></td>
<td><?php echo htmlspecialchars($row1['fname'], ENT_QUOTES, 'UTF-8'); ?></td>
<td><?php echo htmlspecialchars($row1['starttime'], ENT_QUOTES, 'UTF-8'); ?></td>
<td>
<?php echo form_open('studentqueue_controller/counselorscreen/' . urlencode($row1['id']) . ''); ?>
<?php echo form_dropdown('options', $options1, ""); ?>
<?php echo form_submit('submit', 'Submit'); ?>
<?php echo form_close(); ?>
</td>
</td>
</tr>
<?php } ?>
</tbody>
</table>
我很困惑,为什么当我查看我的网络选项卡时会看到ajax调用,但在网络选项卡中却没有看到响应
只是一个更新:
Array ( [waiting] => Array ( [0] => Array ( [id] => 176 [0] => 176 [anum] => A00163047 [1] => A00163047 [first] => rix [2] => rix [last] => aja [3] => aja [SECOND] => 62:47:39 [4] => 62:47:39 [reason] => Award Status [5] => Award Status [studentcomments] => [6] => [aidyear] => 13-14 [7] => 13-14 [counselorcomments] => [8] => ) [1] => Array ( [id] => 179 [0] => 179 [anum] => A00163047 [1] => A00163047 [first] => rix [2] => rix [last] => aja [3] => aja [SECOND] => 00:22:29 [4] => 00:22:29 [reason] => Award Status [5] => Award Status [studentcomments] => [6] => [aidyear] => 13-14 [7] => 13-14 [counselorcomments] => [8] => ) [2] => Array ( [id] => 178 [0] => 178 [anum] => A12345678 [1] => A12345678 [first] => ririri [2] => ririri [last] => ririir [3] => ririir [SECOND] => 00:24:21 [4] => 00:24:21 [reason] => Award Status [5] => Award Status [studentcomments] => [6] => [aidyear] => 13-14 [7] => 13-14 [counselorcomments] => [8] => ) [3] => Array ( [id] => 177 [0] => 177 [anum] => A99999999 [1] => A99999999 [first] => rux [2] => rux [last] => ajaj [3] => ajaj [SECOND] => 00:29:20 [4] => 00:29:20 [reason] => Award Status [5] => Award Status [studentcomments] => [6] => [aidyear] => 13-14 [7] => 13-14 [counselorcomments] => [8] => ) ) [beingseen] => )
我的数据函数实际上是将数据返回控制器。我刚刚打印了我的数据。但是,返回的数据数组被放入表本身,在您的情况下,您应该使用
load()
加载视图并在javascript中打印它,因此使用:
function data(){
$this->load->model('queue_model');
$data['waiting'] = $this->queue_model->waiting();
$data['beingseen'] = $this->queue_model->beingseen();
echo $this->load->view('myview',$data,true);
}
并且您的视图将输出到您使用$(_element).load()指定的位置代码>
为了确保您理解load()jquery方法:
当您执行$('div#element').load('myfile.php')
您正在将myfile.php返回的数据输出到html
元素您的数据函数没有返回任何内容。是的,它返回到控制器,但控制器没有将其返回到视图。没有返回,没有打印,视图永远看不到这些数据。网络选项卡中仍然会显示这些数据,我该如何处理json_编码的数据?就把它扔到视图上好吗?如果我这样做,那么表就会不断弹出,破坏页面的视图。@Joe记住,load()-->是您要输出的,$('.display')-->是您要输出的;)我很抱歉?我很了解你jquery@Joe当您执行$('#element').load('myfile.php')时,没有问题;您正在将myfile.php返回的数据输出到id=“element”html元素中
function data(){
$this->load->model('queue_model');
$data['waiting'] = $this->queue_model->waiting();
$data['beingseen'] = $this->queue_model->beingseen();
echo $this->load->view('myview',$data,true);
}