2016-08-21 6 views
0

私はここにボタンのように作成しようとしましたjqueryの、AJAXとCodeIgniterの

ビューを使用してボタンのように作成する方法を説明します。そして、毎回私

<script type="text/javascript"> 
$(document).ready(function(){ 
    $("#like").click(function() { 
    var id='1069347886434951';//this is not artist who likes 
    var creation_id= 1; 
    $.ajax({ 
    type: "post", 
    url: "<?php echo base_url(); ?>creations/like_creation", 
    data:'id='+id + '&creation_id=' +creation_id,//after its split, the split function gives an array 
    success: function(response){   
     try{ 
     if(response=='true'){ 
      var newValue = parseInt($("#like").text()) + 1;    
      $("#"+voteId+'_result').html(newValue);// adds the value to no of like on the client side 
     }else{ 
      alert('Sorry Unable to update..'); 
     } 
     }catch(e) { 
     alert('Exception while request..'); 
     } 
    }, 
    error: function(){    
     alert('Error while request..'); 
    } 
    }); 
    }); 
    }); 
    </script> 

ボタンのように、それは私が foreach()ループを使用して、データベースから値を置けばいいのかここで1ずつ増加クリックしjqueryの中でそれを供給

コントローラ コントローラは、データベースに値を挿入します。あなたが郵便配達員を使って値を入れた場合、それはjsonからajaxを使ってtrueを返します。私は郵便配達所でそれを試したことがあります。

public function like_creation(){ 
    //$artist_id=$this->session->userdata('user_id'); 
    $artist_id=$this->input->post('id'); 

    //bring creation id from the database when fed using foreach loop 
    $creation_id=$this->input->post('creation_id'); 
    //$up_like1 =0; 
    $data1=array(
    'id'=> $this->input->post('id'),//bring it from artist_infors 
    'creation_id'=> $this->input->post('creation_id'), 
    'artist_who_likes'=> $artist_id , 

    ); 

    $query=$this->hbmodel->insert_like($data1);  


    $status= "true"; 

    echo $status; 
} 

モデル

public function no_likes($artist_id, $creation_id) 
{ 
    $sql="SELECT count(like_id) as num from likes as l where id='$artist_id' and creation_id= $creation_id"; 
    //artist id has to determine whether it is user himself or the one whom  he/she tries to follow 
    $query=$this->db->query($sql); 
    return $query->result(); 
} 

MySQLのクエリ

CREATE TABLE IF NOT EXISTS `likes` (
`like_id` int(11) NOT NULL AUTO_INCREMENT, 
`id` varchar(500) COLLATE utf16_bin DEFAULT NULL,//the artist id whose creation is fed 
`creation_id` int(11) DEFAULT NULL, 
`artist_who_likes` varchar(500) COLLATE utf16_bin DEFAULT NULL, 
PRIMARY KEY (`like_id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf16 COLLATE=utf16_bin AUTO_INCREMENT=29 ; 
+0

質問は何ですか? – mplungjan

+0

私は上記のコードを使用してボタンのように作成することができません。何が間違っているのを見つけることができます –

+0

エラーメッセージ?コンソールメッセージ?また、try catchは何をしていますか?あなたの成功に例外をスローするコードはありません。あなたは真偽ではなく、カウンターを返す必要があります – mplungjan

答えて

0
if($.trim(response) === 'true') 

この問題は成功の決定にあります。値はレスポンスに由来しますが、文字列と正しく比較されません

関連する問題