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

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

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

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

JavaScript

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

HTML

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

Q&A

解決済

2回答

21180閲覧

JavaScriptの変数の値をPHPへ渡す

ryohasegawa

総合スコア437

PHP

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

JavaScript

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

HTML

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

0グッド

1クリップ

投稿2016/12/06 14:02

編集2016/12/07 07:02

php

1<!DOCTYPE html> 2<html lang="ja"> 3 <head> 4 <meta charset="utf-8"> 5 <title>位置取得</title> 6 <!DOCTYPE html> 7<html> 8<head> 9 <meta charset="utf-8" /> 10 <title>Geolocation Sample</title> 11</head> 12<body> 13<script type="text/javascript"> 14 if (navigator.geolocation) { 15 // 現在の位置情報取得を実施 16 navigator.geolocation.getCurrentPosition( 17 // 位置情報取得成功時 18 function (pos) { 19 var location1 = pos.coords.latitude; 20 var location2 = pos.coords.longitude; 21 }, 22 // 位置情報取得失敗時 23 function (pos) { 24 var location ="<li>位置情報が取得できませんでした。</li>"; 25 document.getElementById("location").innerHTML = location; 26 }); 27 } else { 28 window.alert("本ブラウザではGeolocationが使えません"); 29 } 30</script> 31 <ul id="location"> 32 </ul> 33 34 <?php 35 // ログ・ファイルに追記下記モードでオープン 36 $file = @fopen('5-37.log', 'ab') or die('ファイルを開けませんでした!'); 37 // ファイルのロック 38 flock($file, LOCK_EX); 39 // ファイルの書き込み 40 fwrite($file, implode("\t", $url) ."\n"); 41 // ロックの解除 42 flock($file, LOCK_UN); 43 // ファイルを閉じる 44 fclose($file); 45 print 'アクセスログを記録しました。'; 46 ?> 47 </body>

//////////////////////////////////
追記
//////////////////////////////////
色々調べた結果、index.php(内のJavascript)でlocation1location2の値を取得し、send.phpで受け取ったlocation1location2を表示&ファイル書き込みを行いたいです。表示&書き込みのやり方は分かるんですが、データの渡し方がわかりません。

index.phpのlocation1location2をsend.phpへ渡す方法を教えて下さい。

index.php

php

1<!DOCTYPE html> 2<html lang="ja"> 3 <head> 4 <meta charset="utf-8"> 5 <title>位置取得</title> 6 <!DOCTYPE html> 7<html> 8<head> 9 <meta charset="utf-8" /> 10 <title>Geolocation Sample</title> 11</head> 12<body> 13 <?php 14 $data[0]; 15 ?> 16<script type="text/javascript"> 17 18 if (navigator.geolocation) { 19 // 現在の位置情報取得を実施 20 navigator.geolocation.getCurrentPosition( 21 // 位置情報取得成功時 22 function (pos) { 23 var location ="<li>"+"緯度:" + pos.coords.latitude + "</li>"; 24 location += "<li>"+"経度:" + pos.coords.longitude + "</li>"; 25 document.getElementById("location").innerHTML = location; 26 27 }, 28 // 位置情報取得失敗時 29 function (pos) { 30 var location ="<li>位置情報が取得できませんでした。</li>"; 31 document.getElementById("location").innerHTML = location; 32 }); 33 } else { 34 window.alert("本ブラウザではGeolocationが使えません"); 35 } 36</script> 37 <ul id="location"> 38 </ul> 39 40 </body>

send.php

php

1<?php 2 3 $num = isset($_POST['hidden_input']) ? $_POST['hidden_input'] : null; 4 5 // ログ・ファイルに追記下記モードでオープン 6 $file = @fopen('5-37.log', 'ab') or die('ファイルを開けませんでした!'); 7 // ファイルのロック 8 flock($file, LOCK_EX); 9 // ファイルの書き込み 10 fwrite($file, implode("\t", $url) ."\n"); 11 // ロックの解除 12 flock($file, LOCK_UN); 13 // ファイルを閉じる 14 fclose($file); 15 print 'アクセスログを記録しました。'; 16?>

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

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

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

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

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

guest

回答2

0

ベストアンサー

調べられているようでご存知かもしれませんが、
Ajaxってめんどくさいので、jQueryなんて使ってみては如何でしょうか?

とりあえず、index.phpの、ヘッダに

html

1<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>

を追記し、
送信処理を行いたいJavaScriptのところに、

html

1// send.phpにおくりたいデータをjSON形式で書く 2var $map = {"location1": localtion1, "location2": location2}; 3 4//ajaxで読み出し 5$.ajax({ 6 type: 'POST', 7 url: './send.php', 8 data: $map, 9}).done(function(data){ 10 // ここに処理が完了したときのアクションを書く 11 alert("送信完了!\nレスポンスデータ:" + data); 12});

をかけばできそうな気もします。(コードみてませんが)

投稿2016/12/07 14:42

nnahito

総合スコア2004

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

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

ryohasegawa

2016/12/07 15:01

できる希望を持てた回答だったので、選ばせてもらいました。 JavaScriptの勉強も必要ですね
nnahito

2016/12/07 19:06

ありがとうございます。 完成することを祈っております
guest

0

処理の順番について理解しましょう。

ユーザーがURLにアクセスする。

WEBサーバがPHPを処理してHTMLをブラウザに返す。

HTML内のJavaScriptをブラウザが解釈し実行する

通常このような処理の流れになりますから、JavaScript から PHP に値を渡すことはできません。
そのような処理をしたい場合は ajax (非同期通信処理)を行うことになります。

ユーザーがURLにアクセスする。

WEBサーバがPHPを処理してHTMLをブラウザに返す。

HTML内のJavaScriptをブラウザが解釈し実行する

JavaScript 内の ajax 処理を走らせ、非同期で PHP にアクセスする

PHPが処理し、結果をブラウザに返す

レスポンスをJavaScriptが受けて、結果に応じて処理する

という流れになります。

投稿2016/12/06 16:16

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

ryohasegawa

2016/12/06 16:19

ネットで調べたんですが、やっぱり非同期しか方法はないですか、 方法を調べたんですが、やりかたが複雑で理解できませんでした。
退会済みユーザー

退会済みユーザー

2016/12/06 16:22

いきなり難しいことをやろうとしているだけのことですから、地道に学習を続けましょう。
ryohasegawa

2016/12/06 16:22

結果としては、現在は URLにアクセスする   ↓ JavaScriptが処理をして、表示 なんですが、表示と共にPHPで.logファイルに書き出しをしたいんです。
退会済みユーザー

退会済みユーザー

2016/12/06 16:26

やりたいことは理解してますよ。改めて繰り返す必要はありませんよ。
ryohasegawa

2016/12/06 16:28

理解してもらえて嬉しいです。 他の質問サイトで、散々な事を言われて来たばかりだったのでw
ryohasegawa

2016/12/06 17:08

index.phpで値を取得し、値をsemd.phpへ渡し、send.phpで表示&ファイルへ書き込みを行えばいいですか?
退会済みユーザー

退会済みユーザー

2016/12/06 17:26

具体的に書いてもらわないと困ります。 「index.phpで値を取得」なんの値? 「send.phpで表示」何を表示? 「値をsemd.phpへ渡し」どんな方法で渡す?
ryohasegawa

2016/12/06 17:41

追記の箇所を訂正させていただきました。
ryohasegawa

2016/12/06 17:52

文字を入力し、それを送信ボタンで送信したいわけじゃないんですよね データを取得したら自動で送信ってなると、今まだ見つからない状況です。
退会済みユーザー

退会済みユーザー

2016/12/07 05:28 編集

ええと、質問を繰り返しても、そのものズバリの回答は決して書くつもりはありませんよ。 50点のソースを100点にして返すのでは、お金にもならないのに仕事をするようなものですから。 あくまで、あなたが理解することが前提ですから、今のソースコードが50点だとしたら、せめて65点とか70点のソースコードにするところまでは頑張ってください。その時には80点、90点まで持っていけるぐらいの回答は致します。 「データを取得したら」どういうタイミングでプログラムを実行するのかは、「イベント」という概念を理解しなければなりません。「JavaScript イベント」というようなキーワードで検索してみてください。
ryohasegawa

2016/12/07 05:47

わかりました。ググってみます
退会済みユーザー

退会済みユーザー

2016/12/07 06:36

試してみて、意図通り動く場合はOK.動かない場合はNG.
ryohasegawa

2016/12/07 06:39

教えてもらったサイトのAjaxが理解できていないので、飛ばすことすらできません。もう少し時間が掛かりそうです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.51%

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

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

質問する

関連した質問