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

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

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

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

JavaScript

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

Q&A

解決済

3回答

5465閲覧

Javascript で取得したID番号をphpで postで送信したいです

hyskyo

総合スコア79

PHP

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

JavaScript

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

1グッド

1クリップ

投稿2017/03/30 02:39

編集2017/03/30 05:09

javascripで取得idをphpでpostでそうしたいのですか誰か教えていただきませんか?

補足:
index.phpの<div id="param" name="param"></div>これのid="param"はjavascriptfで取ってきました。

name="param"はformのアクションのPOSTでconfirm.phpに渡していますがこれが渡されてないです

12.htmlの12をindex.phpファイルに取得し、さらに、index.phpファイルから <form action="confirm.php" method="post" >で送って、confirm.phpで表示したいのですがなかなかできません、

index.phpまでは取得できていますが、confirm.phpの中には取得できていません、

javascript.js

window.onload = function onLoad() { param = GetQueryString(); target = document.getElementById("param"); target.innerHTML = param["q"]; } function GetQueryString() { if (1 < document.location.search.length) { var query = document.location.search.substring(1); var parameters = query.split('&'); var result = new Object(); for (var i = 0; i < parameters.length; i++) { var element = parameters[i].split('='); var paramName = decodeURIComponent(element[0]); var paramValue = decodeURIComponent(element[1]); result[paramName] = decodeURIComponent(paramValue); } return result; } return null; }

index.php

こちらは12.htmlの12を表示させています。

<form action="confirm.php" method="post" onsubmit="return validate()" enctype="multipart/form-data"> <div><span>ID</span></div> <div id="param" name="param"></div> <button type="submit">確認画面へ</button> </form>

下記はconfirm.phpにnameのparamのid値を取得したいです

<?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $param = $_POST["param"]; ?> <form action="confirm.php" method="post"> <input type="hidden" name="param" value="<?php echo $param; ?>"> <div><span>ID</span></div> <p><?php echo $param; ?></p> <button class="submit-confirm" type="submit" name="submit">送信する</button> </form>
DrqYuto👍を押しています

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

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

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

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

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

toutou

2017/03/30 07:03

return validate()は何を返してますか?
hyskyo

2017/03/30 07:35 編集

入力されたかチェックしています
toutou

2017/03/30 08:03

valueはどうやって確認してますか?
hyskyo

2017/03/30 08:13

確認していません、すみません、valueはどうやって確認しますか?
hyskyo

2017/03/30 08:20

confirm.phpにparamを渡せばいいですがそれを教えていただきませんか?
toutou

2017/03/30 08:30

自分が予想してるのは 、その前の時点で<div id="param" name="param"></div>に値が入ってないことです。target.valueをしたら見れるかと。
hyskyo

2017/03/30 08:43

id="param"には値が入っていて表示されていますがname="param"には値が入っていません。
guest

回答3

0

これでできると思うんですが
できなければ提示外のコードか別の問題じゃないかと
★が変更部分です。

window.onload = function onLoad() { param = GetQueryString(); target = document.getElementById("param"); target.innerHTML = param["q"]; document.getElementById("example").value = param["q"];//★input name="example" のvalueをparam["q"]にするこれによりsubmitで$_POST["example"]で取れる } function GetQueryString() { if (1 < document.location.search.length) { var query = document.location.search.substring(1); var parameters = query.split('&'); var result = new Object(); for (var i = 0; i < parameters.length; i++) { var element = parameters[i].split('='); var paramName = decodeURIComponent(element[0]); var paramValue = decodeURIComponent(element[1]); result[paramName] = decodeURIComponent(paramValue); } return result; } return null; }
<form action="confirm.php" method="post" onsubmit="return validate()" enctype="multipart/form-data"> <input type="hidden" name="example" id="example" value=""><!--★--> <div><span>ID</span></div> <div id="param" name="param"></div> <button type="submit">確認画面へ</button> </form>
<?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $param = $_POST["example"];//★ ?> <form action="confirm.php" method="post"> <input type="hidden" name="param" value="<?php echo $param; ?>"> <div><span>ID</span></div> <p><?php echo $param; ?></p> <button class="submit-confirm" type="submit" name="submit">送信する</button> </form>

投稿2017/03/30 11:52

no-bu

総合スコア75

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

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

hyskyo

2017/03/30 15:08

ご指摘通りにできましたが変数のエラーが出ています!! ありがとうございました。
hyskyo

2017/03/30 15:15

confirm.phpの最後の <p><?php echo $param; ?></p>のところでNotice: Undefined variable: paramのエラー出ています。定義されていない変数とか言われました。 下記の行です <p><?php echo $param; ?></p> <button class="submit-confirm" type="submit" name="submit">送信する</button> </form>
no-bu

2017/03/31 05:44

index.phpからconfirm.phpへのPOSTリクエストで$_POST["example"]は取れましたか? index.phpからconfirm.phpへのid番号を送信する解決方法ですので変数が定義されていない件は少し考えてみてください。 ちなみにサンプルのままですと送信するボタン押下時のconfirm.phpからconfirm.phpへのリクエストでは$_POST['example']は取れませんのでこちらも合わせて考えてみてください。 あとpost名等はこのままですと恥ずかしいので適当な物に変えてください。
guest

0

ベストアンサー

php

1<!doctype html> 2<html> 3<head> 4<meta charset="UTF-8"> 5<title>サンプル1</title> 6</head> 7<body> 8<form action ="a.php" method="post"> 9<input type="hidden" name = "param" id ="param" value=""> 10<button type="submit" name="submit">送信する</button> 11</form> 12<script> 13let a = 1; 14let t = document.getElementById("param"); 15t.innerHTML = 33; 16t.value = 1; 17console.log(t); 18</script> 19</body> 20</html>

php

1<html> 2<head> 3<meta charset="UTF-8"> 4<title>サンプル2</title> 5<?php 6var_dump ($_POST); 7$param = $_POST["param"]; 8?> 9</head> 10<body> 11<form action="confirm.php" method="post"> 12<input type="hidden" name="param" value="<?php echo $param; ?>"> 13<button class="submit-confirm" type="submit" name="submit">送信する</button> 14</form> 15</body> 16</html>!

イメージ説明
innerHTMLしただけで値は入ってないんじゃないかなという予想。

投稿2017/03/30 09:06

toutou

総合スコア2050

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

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

hyskyo

2017/03/30 09:10

はい、どうしたら修正できるか教えていただきませんか?
toutou

2017/03/30 09:24

サンプルのどこの数値が送れたかわかります?
hyskyo

2017/03/30 09:31

index.phpの前のファイル、12.htmlの12がindex.phpにjavascritで送られてきています
toutou

2017/03/30 09:39

人の話を聞かないのであれば何も言いません。
hyskyo

2017/03/30 09:48

すみません、 失礼しました。 全く自分のソースコードに入り込みんでました。 toutouさんのサンプルですか? サンプル1ですかね
toutou

2017/03/30 09:50

では<input type="hidden" name = "param" id ="param" value="">にはどうやっていれてるんでしょうか。
hyskyo

2017/03/30 09:53

それがわかりませんでした、教えていただきませんか?
toutou

2017/03/30 09:55

サンプル1のscriptありますよね?何してるかわかります?そう難しいことしてないんですよ。
hyskyo

2017/03/30 10:13

わかりません
toutou

2017/03/30 10:20

script内の具体的にどの部分がわかりませんか?
hyskyo

2017/03/30 10:49

ちょっとわかりません、教えていただきませんか?
toutou

2017/03/30 10:52

全部で5行なんですが一つもわかりませんか?
hyskyo

2017/03/30 10:56

配列にparamを入れてますね、でもsubmitはわかりません、
toutou

2017/03/30 10:58

どこをみてるのかさっぱりわかりません。
hyskyo

2017/03/30 11:16

すみません、解決を教えていただきませんか? 勉強にもなりますので、よろしくおねがします
toutou

2017/03/30 11:36

paramc、valueで値をいれる
hyskyo

2017/03/30 11:40

paramとvalueで値を入れるのがわかりますが、index.phpで<div>で表示するけど、でも<div>は送信できないです。ですがinputでindex.phpで表示できないです。
toutou

2017/03/30 12:03

要素.value=値
hyskyo

2017/03/30 12:24

ありがとうございます。色々勉強になりました。 ですconfirm.phpで送信をすると次のエラーが出ます Notice: Undefined variable: param in /var/www/html/test/confirm.php on line 258 お名前 Notice: Undefined variable: name in /var/www/html/test/confirm.php on line 265 性別 Notice: Undefined variable: sex in /var/www/html/test/confirm.php on line 271
toutou

2017/03/30 12:46

さすがに付き合いきれないです。きちんと読むことを覚えましょう。
hyskyo

2017/03/30 14:32

自分でなんとかがんまります!! ありがとうございます。
guest

0

index.php でとれているのであれば

<form action="confirm.php" ・・・・</form>

ここに

<input type="hidden" name="param" value="">

を記述してjavascript.jsの

target.innerHTML = param["q"];

しているところで一緒にinputのname="param"のvalueをparam["q"]にしてあげればいいんじゃないかと。

投稿2017/03/30 02:57

no-bu

総合スコア75

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

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

hyskyo

2017/03/30 03:06

できませんでした。 index.phpからpostで受け取っているのが問題ですかね!!
no-bu

2017/03/30 03:45

ごめんなさい。できませんでしたか。。 ちなみに$_SERVER["REQUEST_METHOD"]はダンプか何かでみてPOSTになっていますか? submitのアクションはどこで行うことになりますか?form内にsubmitボタンを設置しているのでしょうか?
hyskyo

2017/03/30 03:52

はい、すみません、説明不足でした、 index.phpには、 <button type="submit">確認画面へ</button> confirm.phpには <button class="submit-confirm" type="submit" name="submit">送信する</button>
hyskyo

2017/03/30 04:11

これが取ってきてないみたいです <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $param = $_POST["param"]; ?>
hyskyo

2017/03/30 04:13

actionは <form action="confirm.php" method="post">
no-bu

2017/03/30 04:29

ifの中には入っていて$_POST["param"]が取れないと言うことですよね。 これができていれば普通にできそうなんですけどね。 ①jsのonLoadでinput name="param"のvalueが12になっている ②index.php からsubmit のアクションでconfirm.php へきちんとリクエストされている ③$_SERVER["REQUEST_METHOD"]はPOSTである
hyskyo

2017/03/30 04:57

①は問題ない ②paramだけがconfirm.phpへリクエストされてないです、他の変数はリクエストされています ③問題ないです
hyskyo

2017/03/30 05:08

<div id="param" name="param"></div>これのid="param"はjavascriptfで取ってきた name="param"はformのアクションのPOSTでconfirm.phpに渡していますがこれが渡されてないです
no-bu

2017/03/30 09:25

toutouさんの回答でなんとなくhiddenのvalueを書き換えていないんですね。 index.phpの <form action="confirm.php" method="post" onsubmit="return validate()" enctype="multipart/form-data"> の下に例えば <input type="hidden" name="example" id="example" value=""> を書いてもらって javascriptの target.innerHTML = param["q"]; 下に document.getElementById("example").value = param["q"]; ※javascript久しく使ってないので書き方間違っていたらすいません。hiddenのvalueを置き換えるんです。 とかやったらできませんか?
hyskyo

2017/03/30 09:35

name="example"にparamを入れて見ましたができませんでした。
hyskyo

2017/03/30 10:19

補足ですが <input type="hidden" name="example" id="example" value="">ですと何も取得できなくなりますが 下記のdivでやって見ましたがname="param"は何も入っていませんでした <div type="hidden" name="param" id="param" value=""></div>
no-bu

2017/03/30 10:32

idはかぶってはだめなのでexampleに仮でしています。 受け取るとき $param = $_POST["example"]; にしないとだめですよ? divだと送信できないのでだめですよ。 たぶんtoutouさんが順序良く説明してくれているので解決できるんじゃないかと思います。
toutou

2017/03/30 10:41

個人的にはもう解決してるんですがw 少し困ってます
no-bu

2017/03/30 10:58

html,php,javascriptがまだ浅いみたいですね。 私も前半で解決できるつもりだったのですが。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.51%

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

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

質問する

関連した質問