【CakePHP】Ajax通信で非同期DB登録からの表示

1-BORN TO TOWADA COMMUNITY-

2012年06月04日(月)

  非同期通信やってみよー!! ということで初めてみました!!   具体的にどーゆー風な事をやりたいかというと… テキストを入力してそのままその情報を画面表示。 そのままその情報を裏でDBへ登録。   ということを1画面でやりたいわけですわ! 画面遷移なんてうざいんじゃー! ということでどういう風に実装したかですが…

    こちらを参考にしました。 とてもわかりやすく解説しております!

□jQuery & Ajax通信を使ってPHPにPOSTでデータを送信する

サンプル http://webcake.no003.info/webdesign/jquery-ajax-php-post-sample.html

このサイト見ればほとんどできちゃいます!

書いてある通りに実装してみてください。

そのなかで、POSTされたページにて処理を書くんですが、この中でDB登録を実装しています。

こんな簡単なものだったとは…   CakePHPであれば、 urlの箇所にコントローラー/アクションを してしてあげればいいですね。

    こんな簡単なものだったとは…   僕の行った処理は以下になります。

public function comment() { 
  //ajaxによる呼び出しチェック 
  if($this->RequestHandler->isAjax()) { 
    //ここに何かしらの処理を書く(DB登録やファイルへの書き込みなど)  
    $this->Comments->create(); 
    if($this->Comment->save($this->request->data)) 
      //echo "OK"; 
      //ここで出力したものは送信元ページのdataとして返されます。 
      var_dump('<div class="bubble" id="b1"><p class="body">'.nl2br($_GET['request_comment']).'</p></div>'); 
    }
    else { 
      //ここで出力したものは送信元ページのdataとして返されます。 
      echo 'The parameter of request is not found.'; 
    } 
  } 
  else { 
    //ここで出力したものは送信元ページのdataとして返されます。 
    echo 'Not use Ajax.'; 
  } 
}

    参考にさせて頂いたWebCake様ありがとうございます!!

で、 僕だけかもしれませんがこんな事象に少しはまりました…

DBに登録したデータをSELECTしたあとに改行がうまく反映されない。。。

そんな時はこれで一発解決できました!!

表示する際にこの処理を行うんです!

「string nl2br(string string) 」

  ありがとう。魔法の言葉「nl2br」 以下参考にさせて頂いたページです!

□改行文字の前にHTMLの改行文字を挿入(nl2br)

http://www.phpbook.jp/func/string/index4.html

 

それじゃあまた。

気が向いたらこのアイキャッチ画像のサイトもデモとして公開するかもです。

スポンサードリンク

運営サービスPR

スポンサードリンク

運営サービスPR