#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>
И из вышесказанного я получаю предупреждение, кричащее на меня каждый раз, когда я выполняю обновление страницы с отображением предоставленных данных.
Поэтому вы можете захотеть проверить вышесказанное на то, что у вас есть.