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

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

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

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

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

JavaScript

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

Q&A

解決済

2回答

1581閲覧

Formのデータ送信について

seri

総合スコア422

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

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

JavaScript

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

0グッド

0クリップ

投稿2017/05/13 03:33

FormのデータをPHPに送ってmysqlに登録していますがselectタグの内容だけが正常に取り出せません。

登録は以下でして
HTML

<form id='form' enctype="multipart/form-data" method="post" name="createform"> <select name="data"> <option value="あいう">あいう</option> <option value="えおいう">えおいう</option> </select> </form>

JavaScript

formdata = new FormData($('#form').get(0)); var va= document.createform.data.value; formdata.append('value',va); $.ajax({ url: "...", type: "POST", data: formdata, type:"post", processData: false, contentType: false, success: function(data){ console.log(data); } });

PHP

$V=$_POST['value']; $sql=<<<SQL insert into table(Value)values(:i); SQL; $s=$con->prepare($sql); $s->bindValue(':i',$V,PDO::PARAM_STR); $s->execute();

取り出しは以下です。

$sql=<<<SQL select * from table; SQL; $s=$con->prepare($sql); $s->execute(); $res=$s->fetchAll(); if($res){ header('Content-type: application/json'); echo json_encode($res);

上記の方法で取り出し場合登録した値はNullですが、mysqlにログインしデータを見てみると、データは入っています。
原因がわかりません。

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

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

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

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

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

wattaru

2017/05/13 05:27

select文の$sqlには正しいSQLが格納されていますでしょうか?var_dump等で確認した方が原因が切り分けやすいかと思います。
guest

回答2

0

ベストアンサー

まずなんのために同じフォームをidとnameで別々に参照しているのでしょう?
またセレクトボックスの参照が中途半端なやりかたをしているのも気になります。

セレクトボックスの挙動がおかしいのであればきちんとした参照の仕方にしてみては?

javascript

1<script> 2$(function(){ 3 $('[type=button][value=test]').on('click',function(){ 4 var formdata = new FormData($('#form').get(0)); 5 var data=document.forms["createform"].elements["data"]; 6 var va= data.options[data.selectedIndex].value; 7 formdata.append('value',va); 8 $.ajax({ 9 url: "・・・", 10 type: "POST", 11 data: formdata, 12 type:"post", 13 processData: false, 14 contentType: false, 15 success: function(data){ 16 console.log(data); 17 } 18 }); 19 }); 20}); 21</script> 22 23 24<form enctype="multipart/form-data" method="post" id="form" name="createform"> 25<select name="data"> 26<option value="あいう">あいう</option> 27<option value="えおいう">えおいう</option> 28</select> 29</form> 30 31<input type="button" value="test">

まぁ普通に参照するなら

javascript

1 var va= $('[name=createform] [name=data]').val(); 2

で十分だと思いますが

投稿2017/05/15 01:46

yambejp

総合スコア114572

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

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

0

PHPのヒアドキュメント構文 ("<<<")のリファレンスにおいて以下の記載があります。

http://php.net/manual/ja/language.types.string.php#language.types.string.syntax.heredoc

警告

非常に重要なことですが、終端 ID がある行には、セミコロン (;) 以外の他の文字が含まれていてはならないことに注意しましょう。 これは、特に ID はインデントしてはならないということ、 セミコロンの前に空白やタブを付けてはいけないことを意味します。 終端 ID の前の最初の文字は、使用するオペレーティングシステムで定義された 改行である必要があることにも注意を要します。 これは、例えば、Macintoshでは \r となります。 最後の区切り文字の後にもまた、改行を入れる必要があります。

記載者様のヒアドキュメント構文は上記記法を満たしているでしょうか。

投稿2017/05/13 05:33

wattaru

総合スコア76

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問