данные $.post () в Codeigniter 3

#javascript #php #jquery #codeigniter #api

#javascript #php #jquery #codeigniter #API

Вопрос:

У меня есть $.post() , и я хочу получить данные в свой контроллер, как я мог это сделать?

jQuery

 $.post($('#url').val()   "Dashboard/getApi", { name: "John", time: "2pm" })
  .done(function( data ) {
    alert( "Data Loaded: "   data );
  });

vvvvvvvvvvvvvvvvvvv this is my url vvvvvvvvvvvvvv
$('#url').val()   "Dashboard/getApi" = "http://127.0.0.1/M2MWare/Dashboard/getApi"
  

И это мой контроллер

 function getApi()
    {
    $valores = $this->input->post();
    // print_r($valores);
    return json_encode($valores);
    }
  

это возвращает мне пустой массив, я пробовал с другим URL, данными и ничего почему?

Комментарии:

1. echo json_encode($valores); нет return json_encode($valores); .

2. @RocketHazmat Ничего, возвращает []

3. Вы передаете неправильный URL, откуда вы это получаете $('#url').val()

4. Как насчет просто echo json_encode($_POST); — это приводит к чему-то другому?

5. @Franco итак, как правильно записать URL-адрес моего контроллера? файл выполняет его: application/controllers/Dashboard.php и внутри контроллера у меня есть функция getApi() , как я прочитал в документах codeigniter 3, маршрут это 127.0.0.1/ папка / контроллер / функция , я ошибаюсь?

Ответ №1:

Codeigniter 3.1.0 работает на сервере WampServer.

Контроллер панели мониторинга

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

class Dashboard extends CI_Controller {

    public function __construct() {
        parent::__construct();
    }

    public function index() {
        $this->load->view('post_view');
    }

    function getApi() {
        $valores = $this->input->post();
        echo json_encode($valores);
    }
}
  

Представление post_view.php Это очень голые кости для простоты.

 <html lang="en">
<head>
<title>Post Me</title>
</head>
<body>
<form>
    <input type="hidden" id="url" value="http://ci310tut.com/">
</form>

<script src="<?= base_url('assets/js/jquery.min.js'); ?>"></script>
<script>
    $(document).ready(function () {
        console.log('We should be seeing an alert popup');
        $.post($('#url').val()   "Dashboard/getApi", {name: "John", time: "2pm"})
            .done(function (data) {
                alert("Data Loaded: "   data);
            });
    });
</script>
</body>
</html>
  

И из вышесказанного я получаю предупреждение, кричащее на меня каждый раз, когда я выполняю обновление страницы с отображением предоставленных данных.

Поэтому вы можете захотеть проверить вышесказанное на то, что у вас есть.