2012-03-04 60 views
0

我需要將用戶重定向到一個唯一的URL,當他們訪問一個特定的鏈接對應於某個/行/列在MySQL數據庫。動態javascript重定向

這裏是我的意思是:

MySQL數據庫與行ID 123和列名「column123」一個表裏面table123。 該行和列對應webpage1.html

普通的JavaScript重定向是這樣的:

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

我需要做的是從webpage1.html的column123提取值,並將其添加到重定向網址,所以它會專門用該值重定向。

例如:

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

這種重定向腳本將被放置在PHP頁面,將呼叫其他PHP頁面的頂部,所以每次必須是動態的,因此重定向腳本必須使用動態佔位符,不是靜態值,除了域名。

謝謝

+0

使用PHP來確定什麼url重定向他們,然後w請將它成爲一個動態的標籤:'<?php echo $ redirect_url; ?>' – MyStream 2012-03-04 10:33:58

+0

爲什麼使用javascript? 'header('Location:http://website.com/webpage2.html/go/'.$table123row123column123);' – mplungjan 2012-03-04 10:36:36

回答

1

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

假設您爲列指定了唯一標識,並假定該表位於網頁上,並且您的location.replace調用了該列。

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

沒有jQuery的,你可以使用

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

如果它是不實際的ID分配給列,你都不可能使用一些jQuery selector magic:eq

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

(無測試)

0

這樣做簡單。用php腳本製作動態url。

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

假設你不能在任何原因在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); 

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