动态javascript重定向

时间:2012-03-04 10:29:28

标签: php javascript mysql redirect

当我们访问与mysql数据库中某个/ row /列对应的特定链接时,我需要将用户重定向到一个唯一的URL。

这就是我的意思:

mysql数据库有一个表table123,其行ID为123,列名为“column123”。 此行和列对应于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页面之上,因此每次都必须是动态的,因此重定向脚本必须使用动态占位符,而不是静态值,域名除外

由于

3 个答案:

答案 0 :(得分: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);

当然我刚刚写了一些伪代码,但希望它能帮助我们理解这个想法。您需要确保验证/清理查询数据库等所有信息。

答案 1 :(得分:1)

如果表确实是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 selector magic :eq和{{3}}

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

(未经测试)

答案 2 :(得分:0)

简单地做。用PHP脚本制作动态网址。

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