views:

1157

answers:

1

I use the following the jquery statements to call my php controller function, it gets called but my result is not returned to my success function....

   <html>
<head>

<link rel="stylesheet" type="text/css" href="http://localhost/codeigniter_cup_myth/stylesheets/style.css" />
<link rel="stylesheet" type="text/css" href="http://localhost/codeigniter_cup_myth/stylesheets/calendar.css" />
<link rel="stylesheet" type="text/css" href="http://localhost/codeigniter_cup_myth/stylesheets/date_picker.css" />
<script type="text/javascript" src="http://localhost/codeigniter_cup_myth/javascript/jquery1.4.2.js"&gt;&lt;/script&gt;
<script type="text/javascript" src="http://localhost/codeigniter_cup_myth/javascript/jquery.pagination.js"&gt;&lt;/script&gt;
<script type="text/javascript">

 $(document).ready(function() {
    getRecordspage();
  });

  function getRecordspage() {
    $.ajax({
        type: "POST",
        url:"http://localhost/codeigniter_cup_myth/index.php/adminController/mainAccount",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        global:false,
        async: true,
        dataType: "json",
        success: function(result) {
           alert(result);
        }
    });
}


</script>
</head>
<body>
<table  id="chkbox" cellpadding="0" cellspacing="2" width="100%" class="table_Style_Border">
        <tr>
            <td class="grid_header" align="center">S.No</td>
               <td class="grid_header" align="center">Account Name</td>
               <td class="grid_header" align="center">Account Acronym</td>
               <td class="grid_header" align="center">Finance Year Start</td>
               <td class="grid_header" align="center">Finance Year End</td>
               <td class="grid_header" align="center">&nbsp;</td>
        </tr>
        <tr> <td colspan="5"> </td></tr>

</table>
</body>
</html>

My controller method,

function mainAccount()
    {
        $_SESSION['menu'] = 'finance';
        $data['account'] = $this->adminmodel->getaccountDetails();
        if(empty($data['account']))
        {
            $data['comment'] = 'No record found !';
        }
        $json = json_encode($data);
        return $json;
}

I get the alert(1); in my success function but my alert(result); show null... Any suggestion...

EDIT:

This was what i got when i gave print_r($data);

Array ( [account] => Array ( [0] => Array ( [dAcc_id] => 1 [dAccountName] => Govt. College Of Technology [dAccountAcronym] => GCT [dFromDate] => 2010-04-02 [dToDate] => 2011-05-03 ) [1] => Array ( [dAcc_id] => 3 [dAccountName] => sample4 [dAccountAcronym] => smp_4 [dFromDate] => 2010-03-17 [dToDate] => 2011-03-03 ) [2] => Array ( [dAcc_id] => 4 [dAccountName] => sample3 [dAccountAcronym] => smp_3 [dFromDate] => 2010-03-16 [dToDate] => 2011-03-17 ) [3] => Array ( [dAcc_id] => 5 [dAccountName] => sample5 [dAccountAcronym] => smp_5 [dFromDate] => 2010-03-12 [dToDate] => 2011-03-03 ) [4] => Array ( [dAcc_id] => 6 [dAccountName] => sample2 [dAccountAcronym] => smp2 [dFromDate] => 2010-03-01 [dToDate] => 2011-03-16 ) [5] => Array ( [dAcc_id] => 7 [dAccountName] => sample1 [dAccountAcronym] => smp_1 [dFromDate] => 2010-03-11 [dToDate] => 2011-03-03 ) [6] => Array ( [dAcc_id] => 8 [dAccountName] => ss [dAccountAcronym] => ss [dFromDate] => 2010-04-04 [dToDate] => 2010-04-06 ) ) ) 

When i print_r(json_encode($data['account'])); i got this,

[{"dAcc_id":"1","dAccountName":"Govt. College Of Technology","dAccountAcronym":"GCT","dFromDate":"2010-04-02","dToDate":"2011-05-03"},{"dAcc_id":"3","dAccountName":"sample4","dAccountAcronym":"smp_4","dFromDate":"2010-03-17","dToDate":"2011-03-03"},{"dAcc_id":"4","dAccountName":"sample3","dAccountAcronym":"smp_3","dFromDate":"2010-03-16","dToDate":"2011-03-17"},{"dAcc_id":"5","dAccountName":"sample5","dAccountAcronym":"smp_5","dFromDate":"2010-03-12","dToDate":"2011-03-03"},{"dAcc_id":"6","dAccountName":"sample2","dAccountAcronym":"smp2","dFromDate":"2010-03-01","dToDate":"2011-03-16"},{"dAcc_id":"7","dAccountName":"sample1","dAccountAcronym":"smp_1","dFromDate":"2010-03-11","dToDate":"2011-03-03"},{"dAcc_id":"8","dAccountName":"ss","dAccountAcronym":"ss","dFromDate":"2010-04-04","dToDate":"2010-04-06"}] 
A: 

Have you set the content type correct?

header('Content-Type: application/json');

With CodeIgniter, are you meant to return the JSON object or output it? If there's no view associated with the method then nothing will be output. Try, just to see if it works:

$_SESSION['menu'] = 'finance';
$data['account'] = $this->adminmodel->getaccountDetails();
if (empty($data['account'])) {
  $data['comment'] = 'No record found !';
}
header('Content-Type: application/json');
echo json_encode($data);
exit;

Lastly, verify the URL you are going to and see if it returns something.

Take a look at JSON Helper.

cletus
@cletus no where i have to include this...
udaya
@cletus i am using codeigniter..
udaya
@cletus when i `print_r(json_encode($data));` i get the json string but why can't return it to my ajax success function...
udaya
@udaya - what @cletus is saying is, try `echo json_encode($data);` instead of `return $data`;
karim79