未定义的变量ajax

时间:2016-06-17 18:14:36

标签: php jquery ajax codeigniter

这个问题是一个错误。我不知道这段代码中的问题。
我正在使用ajax来显示我的表格。它表示未定义的变量:输出。
继承我的代码:

控制器帐户:

function get_accounts()
{
    $accounts=$this->Model_admindly->get_accounts();
    $output.= '
      <table id="example" class="table table-striped table-bordered" cellspacing="0" width="100%">
              <thead>
                  <tr>
                      <th>ID</th>
                      <th>Email</th>
                      <th>Username</th>
                      <th>Last Logged</th>
                      <th>Last IP</th>
                      <th>Date Reg</th>
                      <th>Status</th>
                      <th>Actions</th>
                  </tr>
              </thead>
              <tfoot>
                  <tr>
                      <th>ID</th>
                      <th>Email</th>
                      <th>Username</th>
                      <th>Last Logged</th>
                      <th>Last IP</th>
                      <th>Date Reg</th>
                      <th>Status</th>
                      <th>Actions</th>
                  </tr>
              </tfoot>
              <tbody>';
    foreach($accounts as $key)
    {
        $output.= '<td>'.$key->id.'</td>
                     <td>'.$key->email.'</td>
                     <td>'.$key->username.'</td>
                     <td>'.$key->date_lastlogged.'</td>
                     <td>'.$key->last_ipaddress.'</td>
                     <td>'.$key->date_registered.'</td>
                     <td>'.$key->status.'</td>
                     <td>'.$key->status.'</td>';
    }
    $output.='</table>';
    echo $output;
}

使用ajax显示它:

<script>
  $(document).ready(function(){
    function fetch_data()
    {
       $.ajax({
        url:"<?php echo base_url()?>Accounts/get_accounts",
        method:"POST",
        success:function(data)
        {
          $("#live_data").html(data);
        }
       });
    }
    fetch_data();
  });
</script>

4 个答案:

答案 0 :(得分:4)

您正在尝试与尚未定义的变量连接:

$output .= '<table...

由于这是您第一次引用此变量,因此只需执行直接分配:

$output = '<table...

这将消除Notice: Undefined variable: output消息。

答案 1 :(得分:3)

在尝试$output之前,您从未初始化.=

基本上你有

$output = $output . 'foo';
              ^---undefined at this point

导致错误。你需要

$output = ''; // create/initialize
$output .= 'foo'; // use

答案 2 :(得分:2)

您没有显示完整的消息,但我怀疑您收到了通知?无论如何,如果你这样做:

$output.= '...

然后你说&#34;取变量output并添加此字符串。&#34;

如果变量不存在,您会收到关于它的通知/警告!

你应该从第一次开始这样做:

$output = '....

或者用

初始化它
$output = '';

答案 3 :(得分:1)

易:

在创建变量$output .= "blabla";之前,您正在运行$output

首先创建它,然后你就可以将字符串连接到它。

function get_accounts()
{
    $output  = "";
    $accounts=$this->Model_admindly->get_accounts();
    $output.= '

或者简单地删除第一个参考点上的点:

function get_accounts()
{
    $accounts=$this->Model_admindly->get_accounts();
    $output = '