CodeIgniterが新機能です.AJAXを使用してMySQL-DBフィールドを更新する際に問題があります。 AJAXコードはデータベースを更新しませんでしたが、success
属性(私は名前について混同しています)をjson_encode
を使用して指定しませんでした。 私は何度も試してみましたが、私がモデルを使用しなかったとき、私はコントローラ内で直接実行されるクエリを動かし、うまくいきました。データベースは更新されました。しかし、私はそれが悪い考えだと思った。ここでモデルクエリを使用しているときにCodeigniterがAjax-json_encodeを使用できない
は私のコントローラの機能です:
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/>
試して、このスクリプトを使用することができ、CodeIgniterの更新方法で構築使用することができます> applicant_model-> give_attendance($ data); 'この行とajax succssを取得するかどうかを確認します。 –
はい、私はajaxの成功を得ましたが、行がなければ、どのようにデータベースを更新しますか? –
あなたはあなたのコードをエラーにしました。エラーを表示するには、エラーを有効にする必要があります。 '$ data'を' give_attendance'関数に配列として送信しますが、 '$ applicant-> idplm'オブジェクトとして使用しています。それはあなたにエラーを与えています。 '$ applicant ['idplm']' –