前提・実現したいこと
今現在PHP,Javascriptを用いてデータベースに保存している緯度経度のを読み込み、マッピングするシステムを作成しています。
今現在はPHPでXAMPP内のMariaDBから緯度経度の情報を取得するところまでできています。ですが、マッピングするために使用する「mapbox」はPHPでは使えそうもないので、PHPで取得したデータ(配列)をJavascriptに渡す必要があります。しかし、そのデータのやり取りがうまくいきません。
PHP,Java scriptは授業で使ったことがある程度です。
[追加]
PHPとJava scriptのデータの受け渡し方法として非同期通信「Ajax」を使用するとよいとご指摘いただいたので、下記サイトのソースコードを自分の実行環境で動くのか確認することにしました。
発生している問題・エラーメッセージ
取得エラー
該当のソースコード
database.html
1<html> 2<head> 3<meta charset="utf-8"> 4<title>test ajax</title> 5<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> 6<script type="text/javascript"> 7//Ajax関数 8function getData() { 9 // マスタデータの取得 10 $.ajax({ 11 type: "POST" 12 , url: "http://localhost/Connect.php" 13 , data: { id: $("#id").val() } 14 }).done(function(res){ 15 // ajaxがOK 16 $("#msg").text(JSON.parse(res)); 17 }).fail(function() { 18 // 取得エラー 19 alert('取得エラー'); 20 }).always(function() { 21 // 後処理(処理することが在れば) 22 }); 23 return false; 24} 25</script> 26</head> 27<body> 28 <h2>test ajax json</h2> 29 ID:<input type="text" id="id" size="10" maxlength="10" /><br /> 30 <p id="msg">テストメッセージ</p> 31 <button onclick="getData();">Ajax</button> 32</body> 33</html>
Connect.php
1<?php 2// 処理モードの取得 3$id = -1; 4if (isset($_POST["id"]) == true && $_POST["id"] != "") { 5 $id = intval($_POST["id"]); 6} 7// マスタ風の仮のデータ 8$arrData = array( 9 0 => "@@@@@@" 10 ,1 => "AAAAAA" 11 ,2 => "BBBB" 12 ,3 => "CCCCCCCC" 13); 14 15$strRet = ""; 16if (0 <= $id && $id <= 3) { 17 $strRet = $arrData[$id]; 18} 19 20// 結果を返す 21echo(json_encode($strRet));
試したこと
補足情報(FW/ツールのバージョンなど)
実行環境 XAMPP x3.3.0
htmlファイルはtomcatサーバ
PHPファイルはapacheサーバ上に配置
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/11 06:42
2021/12/11 07:15
2021/12/11 07:36