Jonas Dulay Jonas Dulay - 5 months ago 17
jQuery Question

Undefined variable ajax

This problem is kind of a bug. I don't know the problem in this code.

I'm using ajax to display the my table. and it said undefined variable: output.

Heres my code :

Controller Accounts:

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;
}


To display it using 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>

Answer

You are trying to concatenate with a variable that hasn't been defined yet:

$output .= '<table...

Since this is the first time you are referencing this variable, just do a direct assignment:

$output = '<table...

That will get rid of the Notice: Undefined variable: output message.