コードイグナイターでBBS

掲示板を作ろう

掲示板の基本部分を作っていきます。

 

【機能】

・単一ページの掲示板

・入力値をDBに投げる

・入力したページが分かるようにする

 

【はまり部分】

1.<textare>にはvalueが使えなかった

 

2.入力値がDBに入らない。エラーが表示されない➡テーブル設計のときに、カラムにINTをつけたのに、文字列を投げていた。

 

 

 

はまった部分

 

 

トップページに、以下のようなコメントが投稿できるエリアを作る。

 

 

■/view/welcome_message

<p>■あなたの意見を聞かせてください。</p>
<p> <?php echo form_open('comment_judgement'); ?></p>
<div class="comment_box" id="com_b">

<?php echo form_error('comment_name'); ?>
<p class="comment_p"><input type="text" name="comment_name" value="<?php echo set_value('comment_name'); ?>" placeholder="名前を書いてください"></p>
</div>

<div class="comment_box" id="com_b">
<?php echo form_error('comment_txt'); ?>
<p class="comment_p"><input type="text" name="comment_txt" value="<?php echo set_value('comment_txt'); ?>" placeholder="コメントを書いてください"></p>

<!--スレッドごとのデータ -->
<?php $page_uri= site_url();?>
<?php echo form_hidden('thread_name', $page_uri); ?>


</div>

 

■はまった部分

<textarea>を使っていたら、valueの値が消えてしまう事に気が付きました。

どうやら、<textarea>を使ったことが原因のようでした。

 

<p class="comment_p"><input type="text" name="comment_txt" value="<?php echo set_value('comment_txt'); ?>" placeholder="コメントを書いてください"></p>

 

input type='text'にする事で解決しました。

 

 

はまった部分2

hiddenの部分。

ページごとの値を取得して、thread_nameとしてDBに登録したかった。

DBに登録されない (テーブル設計のミスだった)

 

■解決策

・フォームヘルパーを使う

 

<?php $page_uri= site_url();?>
<?php echo form_hidden('thread_name', $page_uri); ?>

 

form_hidden('thread_name', $page_uri);

この書き方がクリアできました。

第二引数の部分で、表示しているURIを取得しています。これをコントローラに投げて、クエリにして、DBにデータを投げ込みます。

 

 

■DBに登録されない

投げたクエリはあっていたのですが、テーブル設計で、thread_nameの入力できる値をINT(11)にしていたようで、入力する事ができなかった。

 

※エラーログをみれば良かったのか?

エラーを表示させる事ができるのか??

 

全体

 

■コントローラ

controlers/comment_judgement.php

<?php

class Comment_judgement extends CI_Controller {

public function __construct(){
parent::__construct();
$this->load->database();
}

public function index(){

//塾情報の取得
$this->load->model('comment_model');
$this->load->model('zyuku_model');//表示のスクリプトが書いてある
$this->load->model('zyuku_input_model');

$this->load->helper(array('form','url'));
$this->load->library('form_validation');
$this->form_validation->set_error_delimiters('<p class="red">', '</p>');

//値が入っていた場合、こちらのviewを表示する
$this->form_validation->set_rules('comment_name', '名前', 'required|max_length[12]',array('required' => '%s は必須です。'));
$this->form_validation->set_rules('comment_txt', 'テキスト', 'required',array('required' => '%s を入力してください'));
$this->form_validation->set_rules('thread_name', 'ここは', 'required',array('required' => '%s 書き換えないでね~~'));


if ($this->form_validation->run() == FALSE){

//バリデーションのエラー値を持ち越しながら、viewに移動する
$this->load->view('welcome_message');
}else{
//バリデーションが大丈夫だった時の処理
$this->load->helper('date');


//先に子テーブルに入力をする(正規化されているので)
$comment_input= array(
'name'=>$this->input->post('comment_name'),
'message'=>$this->input->post('comment_txt'),
'thread_name'=>$this->input->post('thread_name'),//
'posted_at'=>unix_to_human(time(), TRUE, 'eu')// 秒ありのヨーロッパ形式 usかeuのどちらかにする。
);
$this->db->insert('comments_table',$comment_input);//テーブルに登録する


//その後、親テーブルに登録をする。
$threds_input= array(
'name'=>$this->input->post('comment_name'),
);
$this->db->insert('threads_table',$threds_input);
//var_dump($zyuku_input_data);
// exit();
$this->load->view('form/formsuccess');
}

}
}

 

 

■モデル

models/comment_model

<?php
class Comment_model extends CI_Model {

public function __construct(){
//DBに接続する
$this->load->database();
$this->load->helper('array');
}

 

public function get_comments(){
//正規化した2つのテーブルから、クエリを投げて、データを取得する。
//zyuku_table と zyuku_kyositu_table room_idで結合

$get_comments_query=$this->db->query('
SELECT * FROM comments_table WHERE thread_name="http://localhost/rakutano_zyuku/"

;');

return $get_comments_query->result_array();
//結果を配列で返す
}


}

 

トップページからフォームで、「comment_judgement.php」のコントローラに飛ばし、処理を書いています。

入力はこれで大丈夫です。

次回は、テーブルに登録したデータを取得するコードになります。

 

気がむいたら、今すぐご相談くださいませ。

 

 

コードイグナイターの勉強方法

 

■ フレームワーク ■

フレームワークは何を使ったらいいのか?

ララベルとは?

コードイグナイターとは?

オートロードとは

無名関数とは?

MVCとは何か?

 

■ オブジェクト指向■

クラス・インスタンス・プロパティ

オブジェクト指向とは?

 

 

 

 

この記事を読んだ人は、こんな記事も読んでいます

 

SEO対策の基本 外部要因とは?

SEO対策の基本的である、外部要因とは何か?

SEO対策をするなら絶対に知っておきたい、基本知識です。

 

売れるサイトを作るのに知って起きたい知識

サーチエンジンマーケティングという言葉をご存知でしょうか?

ホームページで商品やサービスを売る時に知っておきたいマーケティング

についてご紹介いたします。

seo対策をするメリットとは

SEO対策をする5つのメリットとは?

なぜ上位表示させることが大事なのか?なぜSEO対策をする必要があるのか

についてご紹介させていただきます。

 

内部要因とは

SEO対策の内部要因とは?

上位表示させるためには、内部要因について知っておくことも大事です。

キーワードを上位表示させるために必要なのは、ソースコードを最適化することです

内部要因の対策について知りたい方はこちらへ

 

キーワード対策をするまえに

キーワード対策をする前に

そのキーワード対策。ちょっと待ってください。

そのまま対策をすると、必ずお金を損してしまいます。個人事業主や中小企業は

そんな大きなキーワードで対策をしてはいけません。

広告費用が高くなる理由とは

広告費用が高くなる本当の理由とは?

売れないサイトに集めていませんか?広告費用がかかるわりには

お問い合わせが少ない・・・と感じる方は多いはずです。

購入率の悪いサイトに集客をしている可能性があります。

 

 

 

 

【SEO対策・web広告・webコンサルティングのプラスワーク対応エリアについて】

プラスワークでは、東京、神奈川、千葉、埼玉を中心に全国でwebコンサルティング、SEO対策、ホームページの更新、ホームページのリニューアル運営代行をしております。売上アップをお考えならお気軽にご相談ください。

 

【SEO対策・web広告・webコンサルティングのプラスワーク 対応地域】

北海道 [ 北海道 ]

東北  [ 青森 | 岩手 | 山形 | 福島 | 秋田 | 宮城 ]

関東  [ 東京 | 埼玉 | 千葉 | 茨城 | 栃木 | 群馬 | 神奈川 ]

甲信越 [ 山梨 | 長野 | 新潟 ]

北陸  [ 石川 | 福井 | 富山 ]

東海  [ 愛知 | 静岡 | 岐阜 | 三重 ]

近畿  [ 大阪 | 兵庫 | 京都 | 滋賀 | 奈良 | 和歌山 ]

中国  [ 島根 | 山口 |鳥取 | 広島 | 岡山 ]

四国  [ 徳島 | 香川 | 愛媛 | 高知 ]

九州  [ 福岡 | 佐賀 | 長崎 | 熊本 | 大分 | 宮崎 | 鹿児島 ]

プラスワークでは全国でSEO対策、ホームページ更新、制作をしております。中小企業専門SEO対策・ホームページ更新制作会社、ダイレクト レスポンス マーケティング、ウェブ マーケティング、マーケティング 分析、口コミのよいSEO対策会社をお探しならプラスワークにお任せくださいませ。

 

 

【コンテンツ】

トップへ

更新レスキュー

料金について

制作実績

お客様の声

よくある質問

会社概要

お問い合わせ

【更新レスキュー】

ライトコース

ゴールドコース

プラチナコース

 

【その他】

ニュース

メルマガ登録

特別資料プレゼント

相互リンク募集中

【課題から探す】

ホームページの課題

SEO対策とは

SEO対策がダメな理由

上位表示されない理由

相互リンクとは

順位が落ちてしまう原因

 

 

フェイスブック  ツイッター