2017-09-15 56 views
0

我有一個網站,我有一個名稱列表,我需要打開一個新的網頁,當名稱被點擊。我需要此頁面顯示點擊名稱的數據,所以我需要通過鏈接傳遞一些數據。這可以用PHP來完成,但是我可以用HTML和Javascript來完成嗎?在沒有服務器端邏輯的情況下,必須有一種方法來處理動態內容。如何通過僅使用JavaScript和HTML的鏈接傳遞數據?

編輯:我想澄清的是,本網站的整個目的是以更簡化的方式使用現有網站的API。我只是想調整他們的設置,因爲寫入服務器邏輯似乎過分,因爲我不需要持久數據(使用API​​)。這個問題是關於我應該如何在這個自定義前端的各個頁面上傳遞API數據。

回答

0

看看這個方法:

您可以通過在查詢字符串的數據:

http://www.yourwebsite.com?name=About

您可以使用此功能,從查詢字符串獲取數據:

function getUrlVars() 
{ 
    var vars = [], hash; 
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); 
    for(var i = 0; i < hashes.length; i++) 
    { 
     hash = hashes[i].split('='); 
     vars.push(hash[0]); 
     vars[hash[0]] = hash[1]; 
    } 
    return vars; 
} 

的getUrlVars()函數將返回:

{ 
    "Name" : "About" 
} 

現在,你可以在任何地方使用JavaScript打印它:

document.getElementById('p').innerHTML(getUrlVars()["name"]); 

document.write(getUrlVars()["name"]); 
0

有幾個選項,但一般相信你可以改變什麼服務器發送下來沒有服務器端邏輯是不合邏輯的。服務器將使用什麼邏輯來進行更改?

但是,如果你服務了相同的頁面,但簡單地改變它的名字,有一兩件事你可以做的是使頁面向下發送靜態內容沒有名稱的任何地方,只需把

<span class='name-of-linked-user'></span> 

的任何地方名字應該出現。在這一點上,讓john doe的鏈接轉到「page.html?name = john%20doe」並添加一些靜態jQuery到頁面。從http://www.jquerybyexample.net/2012/06/get-url-parameters-using-jquery.html複製的獲取URL參數代碼:

function GetURLParameter(sParam) 
{ 
var sPageURL = window.location.search.substring(1); 
var sURLVariables = sPageURL.split('&'); 
for (var i = 0; i < sURLVariables.length; i++) 
{ 
    var sParameterName = sURLVariables[i].split('='); 
    if (sParameterName[0] == sParam) 
    { 
     return sParameterName[1]; 
    } 
} 
}​ 

,然後一個簡單的jQuery循環經過靜態內容使其「動態」

$('.name-of-linked-user').each(function(){ 
    $(this).text(GetURLParameter('name')); 
}); 
+0

感謝您的回答!我知道我的推理可能會讓人困惑。閱讀我的編輯,看看你的想法。 –

相關問題