gpt4 book ai didi

mysql - 使用模型查询时,Codeigniter 无法使用 Ajax-json_encode

转载 作者:行者123 更新时间:2023-11-29 19:27:28 25 4
gpt4 key购买 nike

我是 CodeIgniter 的新手,我在使用 AJAX 更新 MySQL-DB 字段时遇到问题。 AJAX代码没有更新数据库,当然,它也没有使用json_encode给出success属性(我对这个名字感到困惑)。我已经尝试了很多次,当我不使用模型时 - 我将查询移动到直接在 Controller 中执行 - 并且它工作正常,数据库已更新。但我认为这是一个坏主意。

这是我的 Controller 的功能:

public function applicant_is_present(){
$data = array(
'idplm'=>$this->input->post('idplm')
);

$this->applicant_model->give_attendance($data);
echo json_encode(array("status" => TRUE));
}

这是我的模型函数:

function give_attendance($applicant){
$query = 'UPDATE apptable SET khdrp = \'present\' WHERE idplm = '.$applicant->idplm.' ';
$this->db->query($query);
}

这是我的观点:

<!DOCTYPE html>
<link rel="stylesheet" href="<?php echo base_url("assets/css/bootstrap.css"); ?>" />
<html>
<head>
<script type="text/javascript" src="<?php echo base_url("assets/js/jquery-3.1.1.js"); ?>"></script>
<script type="text/javascript" src="<?php echo base_url("assets/js/bootstrap.js"); ?>"></script>

<script type="text/javascript">
function attends(id){

var url;

url = "<?php echo site_url('applicant/applicant_is_present')?>";

$.ajax({
url : url,
type: "POST",
data: {idplm: id},
dataType: "JSON",
success: function(data){

if(data.status){
jQuery("div#beginning_response").show();
}else{
for (var i = 0; i < data.inputerror.length; i++){
$('[name="'+data.inputerror[i]+'"]').parent().parent().addClass('has-error'); $('[name="'+data.inputerror[i]+'"]').next().text(data.error_string[i]);
}
}

},
error: function (jqXHR, textStatus, errorThrown){
alert('Error adding / update data');
}
});
}
</script>
</head>
<body>
.
.
//some codes to print $that_applicant object
.
.
<div id = "beginning_response" style='display: none'>
Present!
</div>
Applicant's Presence :
//this is the button to call the script
<a class="btn btn-sm btn-primary" href="javascript:void(0)" title="update" onclick="attends('<?php echo $that_applicant->idplm; ?>')">Present</a>
<br/>
<br/>

最佳答案

您需要在 Controller 中访问 Ajax 请求中发送的 JSON 数据,如下所示:

$data = file_get_contents("php://input");

这将获取请求中发送的原始数据。然后您可以使用 json_decode 转换为 PHP 数组。

关于mysql - 使用模型查询时,Codeigniter 无法使用 Ajax-json_encode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42037081/

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