2016-07-13 6 views
0

ここではレコードを取得して、Ajaxを使用して表示したいと考えています。ここで私はjsonデータを取得できませんでした。そして、もし私が得れば、どのような見方をするのが適切な方法でしょう。 これにより、テーブルからユーザー名とコメントを取得し、ajaxを使用してclickイベントのビューに表示したいとします。 好きなようにしたいFacebook、コメントが投稿されたときにコメントがページの読み込みなしで表示されます。データベースからレコードを取得できず、ajaxを通してビューにロードできませんでした。

コントローラー:

public function get_comments() 
{ 

      $query=$this->db->query("SELECT user_name,comments FROM user_comments join user_reg where user_reg.user_id=user_comments.user_id"); 
      $temp = $query->result(); 
      foreach($temp as $row) 
      { 
       header('Content-Type: application/json'); 
       echo json_encode($row); 

      } 
      exit(); 

} 

ビュー:

<form action="" method="post" name="usercomments" id="usercomments"> 
      <div> 
       <textarea name="comment" form="usrform" placeholder="Enter comment here..." id="ucom"></textarea> 
       </br> 

       <div class="tab-group"> 
       <input type="submit" class="button button-block tab" id="submitbutton" value="Comment"/> 
       </div> 
      </div> 

     </form> 

    $(document).ready(function() 
    { 

     $("#submitbutton").click(function(event) 
     { 
      //alert('hiii'); 
      event.preventDefault(); 

      jQuery.ajax({ 
       type:"POST", 
       url:"<?php echo base_url();?>index.php/welcome/get_comments", 
       dataType:"json", 
       data:"", 
       success:function(data) 
       { 
        console.log(data); 
        alert(data); 
       } 


      }); 



     }); 

    }); 
+0

フォームを送信するとどうなりますか?コンソールに何かエラーがありますか?それに対応してサーバサイドエラーが発生しますか?ここに十分な情報がありません。 – wrxsti

+0

フォームを送信すると、レコードが挿入されますが、フェッチできませんでした。何のエラーもなく、私もコンソールに情報を得ることができませんでした。 – Viral

答えて

0

あなたはループの外であなたの "エコーjson_encode" を入れてみてください。

配列を使用して行を保存し、この配列をjson_encodeにします。

+0

Thnks @ J.Lglしかし、私は私の見解を得ることができますか? – Viral

+0

jQueryでデータを使用する方法については、このトピックをご覧ください(http://stackoverflow.com/questions/21040794/how-to-access-json-encoded-data-of-an-array-using-javascript)。あなたの意見ではHTML構造が見えません。投稿するフォームがあります。 DOMを操作するにはこの文書をチェックしてください。http://www.w3schools.com/jquery/jquery_dom_add.asp –

0

これらの行に沿って何かお試しください。行をより読みやすいクライアントサイドオブジェクトに再構築し、ループの外でそれをエンコードします。また、そのようなヘッダーを設定する必要はありません。

$query=$this->db->query("SELECT user_name,comments FROM user_comments join user_reg where user_reg.user_id=user_comments.user_id"); 
$temp = $query->result(); 
$response = array(); 
foreach($temp as $row){ 
    $user = $row['user_name']; 
    $response[$user][] = $row['user_comments']; 
} 
echo json_encode($response); 
関連する問題