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

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

新規登録して質問してみよう
ただいま回答率
85.35%
参照

参照は、プログラミングにおいて変数や関数といったメモリ空間上での所在を指示するデータのことを指します。その中にはデータ自体は含まれず、他の場所にある情報を間接的に指示するプログラムです。

PHP

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

JavaScript

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

Q&A

解決済

1回答

939閲覧

JSの値をPHPで参照させたい

tom-tom

総合スコア1

参照

参照は、プログラミングにおいて変数や関数といったメモリ空間上での所在を指示するデータのことを指します。その中にはデータ自体は含まれず、他の場所にある情報を間接的に指示するプログラムです。

PHP

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

JavaScript

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

0グッド

0クリップ

投稿2021/12/04 13:49

前提・実現したいこと

html側からjsでphp側に値を送り、その値を参照して分岐させたい。

発生している問題・エラーメッセージ

js部分のreq.send()に何を入力し、php側で$_GET[]に何を入力したらよいのかわかりません。

該当のソースコード

html

1<!DOCTYPE html> 2<html dir="ltr" lang="ja"> 3 <head> 4 <meta charset="utf-8"> 5 <title>test</title> 6 </head> 7 8 <body> 9 10 <div style="text-align:center"> 11 <button onclick="request()">結果</button> 12 <br> 13 <textarea id="info" cols="100" rows="10" readonly>0</textarea> 14 </div> 15 16 <script> 17 var req = new XMLHttpRequest(); 18 function request(num){ 19 req.open("get","server.php",true); 20 var num = info.value; 21 req.send(); 22 req.onload = function(){ 23 var info = document.getElementById("info"); 24 info.innerHTML = req.response; 25 }; 26 req.onerror = function(){ 27 alert('error'); 28 }; 29 } 30 </script> 31 32 </body> 33</html> 34

php

1<?php 2 3 header("Access-Control-Allow-Origin: *"); 4 header("Content-type: application/json; charset=UTF-8"); 5 6 $num = $_GET['']; 7 8 if($num==0){ 9 $var = '成功です!'; 10 echo json_encode($var,JSON_UNESCAPED_UNICODE); 11 }else if($num==1){ 12 $var = '失敗です!'; 13 echo json_encode($var,JSON_UNESCAPED_UNICODE); 14 } 15 16 ?> 17

試したこと

numとinfoが関わってるのかと思ったので組み合わせてみましたが、Undefined array keyと出てしまいよくわかりませんでした。

補足情報(FW/ツールのバージョンなど)

分岐などはテストなので適当になっていますが、気にしないでください。
phpもjsもほとんど触ったことないので、できるだけ簡単に教えていただけるとありがたいです。

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

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

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

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

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

m.ts10806

2021/12/04 21:11

> numとinfoが関わってるのかと思ったので組み合わせてみましたが、Undefined array keyと出てしまいよくわかりませんでした。 このやってみたコードを記載してもらえれば もう少し起きてる問題に対するアドバイスもできるのですが・・
guest

回答1

0

ベストアンサー

クエリーストリング
クエリーストリングとは、Webページを呼び出すURLの中のパラメータの部分を指す。例えば次のようなURLがあったとする。
http://domain/path/program.cgi?type=A&size=7
この中の「?」記号よりも後ろの部分、「type=A&size=7」がクエリーストリングだ。

https://thinkit.co.jp/free/tech/7/3/1.html

.

send() はリクエストの本文を示す引数を一つ受け取ることができます。これは主に PUT のようなリクエストに使用されます。リクエストメソッドが GET 又は HEAD であれば、 body 引数は無視され、リクエストの本文は null に設定されます。
https://developer.mozilla.org/ja/docs/Web/API/XMLHttpRequest/send

GETメソッドでサーバー(PHP)にアクセスする場合はreq.send()のボディは普通nullになる(nullにする)ようです。
代わりにreq.open("get","server.php",true);の部分をserver.php?key=valueのようにしてクエリーストリングで送信することになると思います。


URL パラメータ (a.k.a クエリストリング) で現在のスクリプトに渡された変数の連想配列です。
この配列の値は、GETリクエストだけでなく、クエリストリングが含まれた全てのリクエストで収集されることに注意して下さい。

例 ¶

例1 $_GET の例

php

1<?php 2echo 'Hello ' . htmlspecialchars($_GET["name"]) . '!'; 3?>

https://www.php.net/manual/ja/reserved.variables.get.php

PHPの方は、$num = $_GET[''];の部分を$_GET["key"]にすることで値が参照できると思います。
クエリーストリングの?key=valuekeyの部分と対応します。

投稿2021/12/04 14:49

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

tom-tom

2021/12/05 02:52

無事値を渡すことができました! 言葉の説明から細かく教えてくださってありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問