[英]CodeIgniter - How to return Json response from controller
How do I return response from the controller back to the Jquery Javascript?如何将控制器的响应返回给 Jquery Javascript?
Javascript Javascript
$('.signinform').submit(function() {
$(this).ajaxSubmit({
type : "POST",
url: 'index.php/user/signin', // target element(s) to be updated with server response
cache : false,
success : onSuccessRegistered,
error: onFailRegistered
});
return false;
});
Data is returned null (blank)!数据返回空(空白)!
function onSuccessRegistered(data){
alert(data);
};
Controller -控制器 -
public function signin() {
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
echo json_encode( $arr );
}
return $this->output
->set_content_type('application/json')
->set_status_header(500)
->set_output(json_encode(array(
'text' => 'Error 500',
'type' => 'danger'
)));
//do the edit in your javascript
$('.signinform').submit(function() {
$(this).ajaxSubmit({
type : "POST",
//set the data type
dataType:'json',
url: 'index.php/user/signin', // target element(s) to be updated with server response
cache : false,
//check this in Firefox browser
success : function(response){ console.log(response); alert(response)},
error: onFailRegistered
});
return false;
});
//controller function
public function signin() {
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
//add the header here
header('Content-Type: application/json');
echo json_encode( $arr );
}
For CodeIgniter 4
, you can use the built-in API Response Trait对于
CodeIgniter 4
,您可以使用内置的API Response Trait
Here's sample code for reference:以下是示例代码供参考:
<?php namespace App\Controllers;
use CodeIgniter\API\ResponseTrait;
class Home extends BaseController
{
use ResponseTrait;
public function index()
{
$data = [
'data' => 'value1',
'data2' => 'value2',
];
return $this->respond($data);
}
}
This is not your answer and this is an alternate way to process the form submission这不是您的答案,这是处理表单提交的另一种方式
$('.signinform').click(function(e) {
e.preventDefault();
$.ajax({
type: "POST",
url: 'index.php/user/signin', // target element(s) to be updated with server response
dataType:'json',
success : function(response){ console.log(response); alert(response)}
});
});
就我而言,我使用的是 ci4,我像这样向clinet发送响应:例如在 App\\Controllers\\Category:setOrder 我的 Category 控制器扩展BaseController
return $this->response->setJson(['msg'=>'update-success']);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.