🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
GET

GETとはHTTPが対応するリクエストメソッドの一つです。クライアントからサーバーへ送られたURLパラメータのデータを取得する時必要がある時に使われます。

PHP

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

JavaScript

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

Q&A

2回答

1401閲覧

選択したプルダウンの値をPHPで受け取る方法

zaralv1

総合スコア0

GET

GETとはHTTPが対応するリクエストメソッドの一つです。クライアントからサーバーへ送られたURLパラメータのデータを取得する時必要がある時に使われます。

PHP

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

JavaScript

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

0グッド

0クリップ

投稿2021/01/18 04:09

編集2021/01/18 11:00

前提・実現したいこと

初めて質問させていただきます。
PHP初心者でJavaScriptは知識がありません。

年月を選択したら選択した年月と連動させてデータを表示させたいです。
データはPHPでDBから取得して表示させたので、
選択した年月をPHP側で受け取るためにGET送信をしたいと考えました。

下記コードになります。

どのようにすればPHP側で値を受け取れるのか教えていただきたいです。
また、もっといい方法があれば教えていただけたらと思います。

よろしくお願いします。

起きている問題
Undefined index:year_monthと表示され、$_GET['year_month']が出力できない。
セレクトボックスの左に2021年1月と表示される。

HTML

1 2<select id="kanrimonth" name="kanrimonth"> 3<option value="20211">2021年1月</option> 4<option value="20212">2021年2月</option> 5<option value="20213">2021年3月</option> 6</select>

JavaScript

1 2$(function(){ 3 $('#kanrimonth').change(function(){ 4 $.get('kanri.php?year_month=' +$(this).$val(),function(data){ 5 //ここに何を記述すれば良いでしょうか? 6 }); 7 }); 8}); 9

PHP

1echo $_GET['year_month'];

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

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

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

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

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

m.ts10806

2021/01/18 05:03

Ajaxでしようとしてるんですか? 今現在のコードで起きてる問題はなにでしょうか
zaralv1

2021/01/18 05:39

$.getの部分がAjaxになるのでしょうか? undefined index:year_month と表示される状態であるのと プルダウンの横に1と表示されてしまいます。
m.ts10806

2021/01/18 09:57

そういう意味ではないです。 >$.get('kanri.php?year_month=' +$(this).$val(),function(data) これ自体がGETリクエストとしてAjaxを実行しようとしてますよね?という確認です。
m.ts10806

2021/01/18 09:57

AjaxでPHP実行すると画面には出てきませんよ。 GETならまぁ直に実行できなくはないですけど。
zaralv1

2021/01/18 11:03

教えていただきありがとうございます。 >AjaxでPHP実行すると画面には出てきませんよ。 そうなんですね。Ajaxが分からないのですが、jQueryで実行してると思っていました。 >AjaxでPHP実行すると画面には出てきませんよ。 $_GET['year_month']で受け取ることはできないということでしょうか?
guest

回答2

0

$(this).$val()

jQuery構文の問題では。
.val()

JavaScriptのエラーをブラウザデベロッパーツールのコンソールで確認してください。

投稿2021/01/18 09:59

m.ts10806

総合スコア80875

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

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

退会済みユーザー

退会済みユーザー

2021/01/18 10:46

気づきませんでした
zaralv1

2021/01/18 11:07

教えていただきありがとうございます。 unexpected end of inputとなっていました! こちらは解決させたのですが、$_GET['year_month']で値を受け取ることができません。 $.get('kanri.php?year_month=' +$(this).$val(),function(data){ }); この中身はどのように書くべきかわかりますでしょうか?
hentaiman

2021/01/18 11:10

それ回答内容スルーしてません?
zaralv1

2021/01/18 14:06

大変失礼いたしました。$を省きました。 ディベロッパーモードでNetworkタブを見ると kanri.php?year_month=20212(2021年2月を選択)となるのですが echo $_GET['year_month']; が出力されないのは何故でしょうか?
m.ts10806

2021/01/18 21:07

Ajaxはバックグラウンドで実行するため。デバッグ方法なくはないですけど、単にecho書いてるだけなら$.getのコールバックで受け取ってるdataをJavaScriptでコンソールなりなんなりで確認してみてください。
guest

0

$.get('kanri.php?year_month=' +$(this).$val(),function(data)
「$(this)」ってなんだろうってのと、
「$val()」の$ってなんだろうってのと、
送信成功時に呼ばれる関数が定義されていないのが問題かもしれないので、

javascript

1$(function(){ 2 $('#kanrimonth').change(function(){ 3 $.get('kanri.php?year_month=' + $('#kanrimonth').val(), function(data){} 4 }); 5});

などとしてみるとか。

(加筆)あー、$が邪魔してましたね、そういえば。

投稿2021/01/18 05:05

編集2021/01/18 10:49
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

zaralv1

2021/01/18 05:44

教えていただきありがとうございます。 $(this)の方が便利(自動的に変化する)と思ったのですが、複数あるわけでもないので必要なかったかもしれません。 $('#kanrimonth')にしてみましたが結果は変わりませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問