gpt4 book ai didi

php - 在 CodeIgniter 中使用 jQuery JSON

转载 作者:行者123 更新时间:2023-12-02 07:08:29 25 4
gpt4 key购买 nike

在 CI 中,我使用 logsig() 方法设置了一个 Controller 。然后在我的 index() 方法中调用一个名为 startpage 的 View 。在我看来,我正在使用 JSON 在我的 View 和我的 Controller 之间进行异步调用。我将如何对调用进行编码。下面是我的代码:

Controller :

function logsig() {
$this->load->view('startpage', $sync);
header('Content-type:application/json'); .............

查看:

<script type="text/javascript" language="javascript">
$(document).ready(function() {
// blink script
$('#notice').blink();

$("#action_button").click(function() {
var username = $("#username").val();
var password = $("#password").val();
var dataString = '&username=' + username + '&password=' + password;
if(username=='' || password=='') {
$('#success').fadeOut(400).hide();
$('#error').fadeOut(400).show();
} else {
$.ajax({
type: "POST",
dataType: "JSON",
url: "processing/logsig.php",
data: dataString,
json: {session_state: true},
success: function(data){
if(data.session_state == true) { // true means user is logged in.
$("#main1").hide();
$('#main1').load('<?=$sync?>').fadeIn();
} else if(data.session_state == false) { // false means user is being registered.
$("#action_button").remove();
$('#success').load('<?=$sync?>');
// onLoad fadeIn
}
}
});
}
});
});
</script>

最佳答案

您不能让您的 Controller 同时加载 View 返回 JSON。将 JSON 部分分解为一个单独的函数。

一个过度简化的例子可能是这样的:

// Your existing function, but only displaying the view
function logsig() {
$this->load->view('startpage', $sync);
}

// A new function whose sole purpose is to return JSON
// Also notice we're using CI's Output class, a handy way to return JSON.
// More info here: codeigniter.com/user_guide/libraries/output.html
function get_json() {
$this->output->set_content_type('application/json')
->set_output(json_encode(array('foo' => 'bar')));
}

然后,在您的 JavaScript 中调用 get_json:

$.ajax({
type: "POST",
dataType: "JSON",
url: "<?php echo site_url('processing/get_json.php'); ?>",
// ... truncated for brevity ...
});

关于php - 在 CodeIgniter 中使用 jQuery JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8420312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com