クエリをコミットするためにページをリロードしたり、別のページにリダイレクトしたりせずに、データベースの行を更新しようとしています。私はできることは何でも試しましたが、運がありません。ギャラリーページがあります。ユーザーがアートワークを送信すると、デフォルトでは承認されず、モデレーターなどの承認されたユーザーが承認できます。モデレーターページには、未承認のアートワークが一覧表示されます。データベースには、承認済みと呼ばれる列があり、その値は0または1です。
これが私のコードです。
アップデート:
お時間を割いていただき、誠にありがとうございます。あなたが言った変更を加えましたが、まだ機能していません。確かに、私はjQuery / Ajaxがあまり得意ではないので、なぜそれが機能しなかったのかについては私の側の間違いであるに違いありません。私のコードは次のようになりました:
モデル機能:
function approve($id)
{
$this->db->where('id', $id);
$this->db->update('galeri', array('approved' => '1'));
return TRUE;
}
コントローラ
function approve($id)
{
if ($this->galeri->approve($id)) {
echo("VALID");
}
}
HTML
.
.
.
<script type="text/javascript">
$(document).ready(function() {
var test = $("a.approval").attr("id").replace('artid-','');
$.ajax({
type: 'post',
url: 'approve',
data: test,
beforeSend: function() {
parent.animate({'backgroundColor':'#fb6c6c'},300);
},
success: function(data, textStatus, jqXHR) {
if (data == "VALID") {
parent.slideUp(300,function() {
parent.remove();
});
};
}
});
});
});
</script>
.
.
.
<?php foreach ($query->result() as $list): ?>
<span style="display: block">
<?php echo $list->path; ?> -- <a href="javascript:void(0)" id="artid-<?php echo $list->id; ?>'" class="approval">Approve artwork</a>
</span>
<?php endforeach; ?>
.
.
.