2016-12-11 29 views
-3

我需要根據用戶搜索的內容將一些標記加載到嵌入式Google地圖中。標記由MySQL表中的lng/lat座標確定。如何在Javascript文件中存儲PHP/MySQL變量?

該地圖是在一個單獨的Javascript文件中的JavaScript函數中創建的(因此不嵌入在HTML中),它將XML文件作爲輸入。我創建了一個PHP頁面(稱爲'xml.php'),可以根據用戶的搜索者動態生成我需要的XML文件。現在我在我的Javascript函數中手動輸入POST信息,所以它調用'xml.php?query = hello'

我想以某種方式將原始查詢發送到Javascript文件,以便我可以將它追加到'xml.php'的末尾。這樣,一切都從原始搜索自動完成,生成一個XML文件,並閱讀它來創建標記。

我見過當JavaScript是嵌入標籤是相當簡單的解決方案,但我試圖避免

這裏是我的功能,對於一個XML文件調用:

function downloadUrl(url, callback) { 
    var request = window.ActiveXObject ? 
     new ActiveXObject('Microsoft.XMLHTTP') : 
     new XMLHttpRequest; 

    request.onreadystatechange = function() { 
     if (request.readyState == 4) { 
     request.onreadystatechange = doNothing; 
     callback(request, request.status); 
     } 
    }; 

    request.open('GET', url, true); 
    request.send(null); 
    } 

function doNothing() {} 

的XML信息將根據用戶最初搜索的內容而改變。所以它實際上是一個php文件(xml.php),它執行SQL搜索並以XML格式迴應它。調用xml.php

downloadURL('xml.php?query=whatever', somefunction()) 

的時候,我可以控制通過後加入信息的SQL搜索但這附加POST數據需要動態的一樣。 所以整個流程是:

搜索頁面 - >將數據發送到結果頁面,呼籲JavaScript文件創建地圖 - > JavaScript文件調用XML的信息,將在地圖搜索結果頁

+4

你要找的AJAX。 – SLaks

+0

@SLaks我想我現在正在使用AJAX實現。我遇到的唯一問題是我發現的所有教程都在某種輸入框上使用了document.getElementByID。在我的例子中,我已經發送了表單,現在我需要獲得Javascript文件的信息是在URL –

回答

0

莫非向我們展示一些代碼?

你試過localstorage嗎?

// Store 
localStorage.setItem("lastname", "Smith"); 
// Retrieve 
document.getElementById("result").innerHTML = localStorage.getItem("lastname"); 

您可以使用它來設置一些信息,然後使用ajax調用post方法。

但它只是有用的,如果你想保留在會議中的一些數據。

引用:[1][2]

+0

上的POST。嘿Celso,謝謝你的回答。我已經添加了一些關於我的情況的更多信息。我一直試圖避免在DOM中額外添加值,只是爲了將它們與JS文件拉出來。有沒有一種方法可以將POST數據從搜索頁面直接獲取到結果頁面調用的JS文件? –

+0

據我所知,POST數據只能由服務器端處理(http://stackoverflow.com/a/1409029/2130322)。我相信有沒有辦法得到這個,除非你有一些服務器端代碼發送到JavaScript。 –

+0

也許這可以幫助你:http://stackoverflow.com/a/23740549/2130322 –

相關問題