Функция успеха jQuery Ajax возвращает ноль? - PullRequest
2 голосов
/ 06 апреля 2010

Я использую следующие операторы jquery для вызова моей функции контроллера php, она вызывается, но мой результат не возвращается моей функции успеха ....

<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"></script>
        <script type="text/javascript" src="http://localhost/codeigniter_cup_myth/javascript/jquery.pagination.js"></script>
        <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>

Мой метод управления,

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

Я получаю alert(1); в моей функции успеха, но мое alert(result); шоу null. Как мне решить эту проблему?

Это было то, что я получил, когда дал 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 ) ) )

Когда я сделал print_r(json_encode($data['account']));, я получил это:

[{"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"}]

Ответы [ 2 ]

2 голосов
/ 04 ноября 2011

Самая распространенная причина, по которой это происходит, - это если ваша страница небезопасна и пытается связаться через ajax с защищенной страницей или наоборот (например, http ajaxing https)

2 голосов
/ 06 апреля 2010

Вы правильно указали тип контента?

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

С CodeIgniter вы хотите вернуть объект JSON или вывести его? Если нет представления, связанного с методом, тогда ничего не будет выведено. Попробуйте просто посмотреть, работает ли он:

$_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;

Наконец, проверьте URL-адрес, по которому вы идете, и посмотрите, возвращает ли он что-либо.

Взгляните на JSON Helper .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...