2016-10-03 4 views
-1

У меня возникли проблемы с отправкой данных в CodeIgniter. У меня есть это.AJAX POST для контроллера CodeIgniter

Ajax

$.ajax({ 
      url: $('#url').val() + "Dashboard/Index", 
      dataType: 'json', 
      contentType: 'application/json', 
      type: 'post', 
      data: {data: data}, 
      success: function(data){ 
       console.log(data); 
      }, 
      error: function(jqXhr, textStatus, errorThrown){ 
       console.log(jqXhr); 
       console.log(textStatus); 
       console.log(errorThrown); 
      } 
     }); 

контроллер | Dashboard.php -> class: Dashboard, function: index

atm Я пытаюсь с этим только посмотреть, есть ли что-то его размещение, но нет!

if($_POST) { 
      print_r($_POST); 
      die(); 
     } 

Так весь мой контроллер выглядит так ...

<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 

class Dashboard extends CI_Controller 
    public function index() 
    { 

     // $test = $_POST['data']; 
     // echo json_encode($_POST); 
     if($_POST) { 
      print_r($_POST); 
      die(); 
     } 


//////////////////////////////////Views///////////////////////////////// 



    // includes 
    $data['footer'] = $this->load->view('includes/footer', NULL, TRUE); 

    // App 
    $data['menuProfile'] = $this->load->view('app/menuProfile', NULL, TRUE); 
    $data['sidebarMenu'] = $this->load->view('app/sidebarMenu', NULL, TRUE); 
    $data['topNavigation'] = $this->load->view('app/topNavigation', NULL, TRUE); 
    $data['menuFooter'] = $this->load->view('app/menuFooter', NULL, TRUE); 

    // Dashboard 

    $dashboard['dinp'] = $this->load->view('app/dashboard/dinp', NULL, TRUE); 
    $dashboard['dispTitle'] = $this->load->view('app/dashboard/dispTitle', NULL, TRUE); 
    $dashboard['porcentaje'] = $this->load->view('app/dashboard/porcentaje', NULL, TRUE); 
    $dashboard['temp'] = $this->load->view('app/dashboard/temp', NULL, TRUE); 
    $dashboard['velocity'] = $this->load->view('app/dashboard/velocity', NULL, TRUE); 
    $data['dashboard'] = $this->load->view('app/dashboard/dashboard', $dashboard, TRUE); 


    $this->load->view('includes/head'); 
     $this->load->view('app', $data); 
    $this->load->view('includes/jquery'); 
    } 
} 

Таким образом, окончательный выход ее просто так:

Unexpected token < in JSON at position 0(…) 

Я не знаю, почему пост возвращает целое HTML, я отправляю свои данные как объекты, что мне делать?

+0

что значение/содержание в 'данные' используется в AJAX – Rijin

+0

_ ** [Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object , Object, Object, Object] ** _ его массив (1) с 10 объектами – Gil

+0

, так как вы используете datatype json, вам нужно преобразовать данные в json – Rijin

ответ

0

Сообщение данных содержит объект JSON, и вы получили элемент вашего объекта, как это:

$this->input->post('your_post_element'); 
+0

Хорошо, это сработает, если мой аякс его успех, но его получение ошибки потому что он получает весь html, как этот msg _ ** «SyntaxError: Неожиданный токен H в JSON в позиции 0 (...)» ** _ – Gil

+0

Покажите свой JSON перед ajax с помощью JSON.stringify (data) и подтвердите свой obejct в этот сайт: http://jsonlint.com/ –

0

1) Вы должны перепроверить, что находится внутри этой переменной

data: {data: data}, 

2) Вы был установлен

contentType: 'application/json' 

поэтому вам необходимо вернуть содержимое в формате JSON, а также установить тип содержимого JSON на странице ответа

$this->output 
->set_content_type('application/json') 
->set_output(json_encode($_POST)); 
Смежные вопросы