2016-11-20 7 views
1

私はウェブ技術を初めて使い、ユーザーが地図をクリックできるウェブアプリケーションを作成して、フォームがポップアップして特定の情報を入力できるようにしたいと考えています。その情報はデータベースに保存されます。今私は地図上に緯度と経度をその位置としてマーカーを作成する必要があるので、その情報を引き出す方法はわかりません。 PHP変数からjavascriptに値を渡す方法がわかりませんPHP変数からJavascriptに値を格納するには?

<?php 
    require_once("mysqli_connect.php"); 

    $query = "SELECT * FROM markeri"; 

    $response = @mysqli_query($dbc, $query); 

    if($response){ 
     while($row = mysqli_fetch_array($response)){ 
      $naziv = $row['naziv']; 
      $opis = $row['opis']; 
      $email = $row['email']; 
      $latitude = $row['latitude']; 
      $longitute = $row['longitute']; 


     } 
    } 

?> 

これはデータベースからデータを取り出すためのコードです。今度は地図上にデータベースからのすべての情報を使ってマーカーを作成する必要があります。

var marker = L.marker(e.latlng); 
marker.addTo(mymap).bindPopup(form).openPopup(); 

<div id="form"> 
    </br> 
    Naziv:</br> 
    <h1 id="naziv"></h1></br></br> 
    Opis problema:</br> 
    <p id="opis"></p> </textarea></br> 
    E-mail:</br> 
    <h3 id="email"> </h3></br></br> 
</div> 

マップとのやりとりにリーフレットAPIを使用しています。 e.latlng(JS配列)をPHPでデータベースから取り出した緯度と経度に置き換え、その位置にマーカーを作成することによってマーカーを作成する必要があります。上記の「フォーム」の情報は、個々のマーカーごとに記入する必要があります。

これは、データベース内のテーブルです: enter image description here

+2

Ajaxを使用していますか?保存したら、PHPにAJAXリクエストを行い、必要なJSONを返します。そして、データをHTMLに取り込みます。 –

+0

@MykolaBorysyukどうやってやろうか?私はループした情報をどのように保存するのか分かりません。 – Gigaxel

+0

不思議なことに、この質問はなぜ投票されたのですか? –

答えて

1

あなたはjQueryのを持っている場合だけ http://api.jquery.com/jquery.ajax/

$.ajax({ 
    method: "GET", 
    url: "some.php" 
}) 
.success(function(res) { 
    //If all ok you will get Object as a responce 
    console.log(JSON.parse(res)); 
}); 

Insodeあなたsome.phpスクリプト $data is object that you needを行います。ちょうど成功ハンドラで今すぐ

echo json_encode($data);

。 JQueryや純粋なJavaScriptを使用して、テーブル、divなどに要素をループして追加します。

このようになります。 http://api.jquery.com/append/

$("p").append("<strong>Hello</strong>");

あなたは他の方法を確認したいことがあります。これは単なる例です。

これが役に立ちます。

+0

ありがとうございました。これはまさに私が探していたものです:D – Gigaxel

関連する問題