簡體   English   中英

動態javascript重定向

[英]Dynamic javascript redirection

當用戶訪問與mysql數據庫中某個/ row /列對應的特定鏈接時,我需要將用戶重定向到一個唯一的URL。

這就是我的意思:

mysql數據庫有一個表table123,其行ID為123,列名為“column123”。 此行和列對應於webpage1.html

正常的javascript重定向是這樣的:

<script>location.replace('http://website.com/webpage2.html');</script>

我需要做的是從webpage1.html的column123中提取值並將其添加到重定向URL,因此它將專門重定向該值。

例如:

<script>location.replace('http://website.com/webpage2.html/go/dbtable123row123column123value');</script>

此重定向腳本將放置在將調用其他php頁面的php頁面之上,因此每次都必須是動態的,因此重定向腳本必須使用動態占位符,而不是靜態值,域名除外。

謝謝

假設你無論出於什么原因都無法在PHP中重定向,這就是我要做的。 使用AJAX從數據庫中獲取正確的網頁。 我建議使用像jQuery這樣的庫來幫助你做到這一點。 如果你使用jQuery,它看起來像這樣:

$(function() {
  $.get(
    '/script/that/queries/db.php',
    'your=query_string&goes=here',
    function(data) {
      if(data.url.length > 0) {
        location.href = data.url;
      }
    },
    'json'
  );
});

您沒有指定何時需要觸發此重定向,因此我只是將其放在標准主體onload中。 無論如何,在你編寫$.get()函數調用之后,然后在你的/script/that/queries/db.php ,你將要根據get變量執行數據庫查詢,並打印一個JSON帶有您要重定向到的有效頁面的編碼數組:

$json = array('url' => '/webpage2.html');
print json_encode($json);

當然我剛剛寫了一些偽代碼,但希望它能幫助我們理解這個想法。 您需要確保驗證/清理查詢數據庫等所有信息。

如果表確實是mysql表並且javascript無法訪問該信息,請遵循其他建議並在服務器端處理它。 如果以某種方式,表數據打印在您希望重定向發生的html文檔上,那么您可以考慮以下內容。 (盡管如此,管理這個服務器端真的更有意義)。

假設您已為列添加了唯一ID,並假設該表位於您的location.replace調用的網頁上。

location.replace("http://website.com/webpage2.html/go/" + $('#column123').text()) 

沒有jQuery,你可以使用

document.getElementById('#column123').innerHTML (or text?)

如果為列分配id是不切實際的,你可以使用一些jQuery選擇器魔法 :eq

location.replace("http://website.com/webpage2.html/go/" + $('#dbtable123 > tr:eq(1) > td:eq(3)').text())

(沒有測試過)

干得好。用PHP腳本制作動態網址。

header('Location: http://website.com/'.$table123row123column123);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM