コードイグナイターで自分のサイトに ajax プラス 1 ボタンを実装しようとしています。私は Ajax と codeigniter に非常に慣れていないので、ガイダンスが必要です。
これが、私が始めているコントローラーの部分です。これは、これを作成しようとしているプロファイル ビューを作成するメソッド内にあることに注意してください。
$voteId= $this->input->post('voteId');
$upOrDown= $this->input->post('upOrDown');
$status ="false";
$updateRecords = 0;
if($upOrDown=='upvote'){
$updateRecords = $this->community_model->updateUpVote($voteId);
}else{
$updateRecords = $this->community_model->updateUpVote($voteId);
}
if($updateRecords>0){
$status = "true";
}
echo $status;
// This variable will be accessed from the view
$data['airwave'] = $airwave;
$data['profile_id'] = $profile_id;
$this->load->view('includes/templates/main_page_template', $data);
}
モデルのメソッドは次のとおりです。
function updateUpVote($voteId){
$sql = "UPDATE airwaves_comments set thumbsup = thumbsup+1 WHERE thumbsup =?";
$this->db->query($sql, array($voteId));
return $this->db->affected_rows();
}
ここに私の見解があります:
<div id='thumb_holder'>
<div id='thumb_report'>
<a href='mailto:info@cysticlife.org'>
• report
</a>
</div>
<div class= 'thumb_counter'>
+0
</div>
<div id='thumb_thumb'>
<a class='myButtonLink voteMe' id='1_upvote'<span id="1_upvote_result">+</span>></a>
</div>
</div>
ここにスクリプトがあります:
<script>
$(document).ready(function(){
$(".voteMe").click(function() {
var voteId = this.id;
var upOrDown = voteId.split('_');
$.ajax({
type: "post",
url: "account/profile/voteMe",
cache: false,
data:'voteId='+upOrDown[0] + '&upOrDown=' +upOrDown[1],
success: function(response){
try{
if(response=='true'){
var newValue = parseInt($("#"+voteId+'_result').text()) + 1;
$("#"+voteId+'_result').html(newValue);
}else{
alert('Sorry Unable to update..');
}
}catch(e) {
alert('Exception while request..');
}
},
error: function(){
alert('Error while request..');
}
});
});
});
</script>
さらに、これは何が起こっているのかをよりよく理解するためにどのように見えるかですが、プラス記号の後に投票数があることを望みます:
要約すると: 基本的に、私は同様のデモ チュートリアルのチュートリアルを受講していましたが、それはまさに私がやろうとしていることではありませんでした。これは基本的に、チュートリアルからコードを取得し、それを自分のコードとつなぎ合わせて、特定のニーズを満たし、同時に ajax を学習しようとしています。テーブルの指定された列を(誤って)更新しているので、私は近づいているように感じますが、目に見えて機能させることはできません。