質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

1827閲覧

value="0"がDBに登録できない

Citra01

総合スコア13

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2016/10/13 02:32

編集2016/10/13 04:48

チェックボックスがチェックされている場合は「1」を
チェックされていない場合は「0」をDBに登録する処理を実装中です。

以下のコードを書いたのですが、value="0"の場合のみ登録できません。

<label><input type="hidden" name="checkflg" value="0"></label> <label><input type="checkbox" id="check-flg1" name="checkflg" value="1" checked>チェックテスト</label>

value="0"を2や3などの数値に変更すると正常に登録ができたのですが、0を登録するにはどのようにしたらよいでしょうか?

以下受け取り側のコードを追加しました。

Javascript

1//登録ボタン押下時 2$(document).on('click', '#btn-touroku', function(){ 3 4 var data = $('#form_flg').serialize(); 5 data = data; 6 7 console.log(data); 8 9 $.ajax({ 10 url : '/ajax/regist.json', 11 type : "post", 12 data : data, 13 dataType : 'Json', 14 cache: false, 15 success: function(result){ 16 17 }, 18 error: function(XMLHttpRequest, textStatus, errorThrown){ 19 20 }, 21 }); 22});

php

1public function action_regist() { 2 $post = Input::post (); 3 $this->_MODULE = new Module_Mdlflgcheck (); 4 5 $dto = new Dto_flg ( $post ['checkflg'] ); 6 7 $ret = $this->_MODULE->regist ( $dto ); 8 return $this->response ( $ret ); 9 }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tanat

2016/10/13 02:53

POSTを受け取って登録を行っているPHPのコードの方に問題がある可能性が高いかと思いますので、受け取り側のPHPコードを提示されると適切な回答が得られるかと思います。
guest

回答2

0

hiddenとcheckboxのnameが競合していませんか?
hiddenは設定せずに、$_GET["checkflg"](もしくはpost)が
未設定なときは0だという読み替えをプログラムですればよいでしょう

投稿2016/10/13 02:37

yambejp

総合スコア114775

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YugoYamamoto

2016/10/13 02:40

hiddenを前に置いて、チェックがないときにのvalueを送信するというのは、フォーム作るときの定石ではありますね。
yambejp

2016/10/13 03:00

YugoYamamotoさん、ご指摘ありがとうございます nameの競合についてはPHPの場合後ろの値を優先するようですね 私ならバリデートするので採用しませんが、そういう運用方法を取られている ところもあるのであれば否定はしません。 これって保証されているのでしょうか?どこかに資料があるなら教えてください
guest

0

ベストアンサー

受け側のコードが無いので勘ですが、送信データを受け取っている部分で

PHP

1if(!$_POST["checkflg"]){ 2//データが無いので処理をしない 3}

または

PHP

1if($_POST["checkflg"]){ 2//データ登録の処理 3}

の様なフォーム値のチェックをしていたりしませんか?

PHPの場合変数の値が0やfalseの場合
if(!$value)が真になってしまいます。
そのため、厳密な比較を行う必要があります。

厳密な比較
参考2

投稿2016/10/13 02:50

tanat

総合スコア18713

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Citra01

2016/10/13 04:47

特にフォーム値のチェックは行っておりません。 受け取り側のコードを新たに追加いたしました。
tanat

2016/10/13 05:35

>$post = Input::post (); で値を落としてしまっているかもしれませんね。 その直後に var_dump($post ['checkflg']); を入れて値が取得できているか確認して見て下さい。 取得できていたなら、さらにその後に > $dto = new Dto_flg ( $post ['checkflg'] ); var_dump($dto); として$dtoに値がセットできているか、 出来ていたら > $this->_MODULE->regist の該当のregist()の中で値が想定通りに扱えているかを確認して見て下さい。
zico_teratail

2016/10/13 06:02

>フォーム値のチェックは行っておりません。 ってアカンやろ。 それが問題解決の答えです。 tanatさんの書いた通り、順を追ってデバッグ(変数を出力)してみればいい。
Citra01

2016/10/13 10:01

1つ1つ順を追ってデバッグしてみたところ、 フォーム値のチェックを行っている箇所ありました・・・(汗) emptyでチェックを行っていたために0を空と判断していたみたいでした。 無事解決となりました、ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問