当我们访问与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页面之上,因此每次都必须是动态的,因此重定向脚本必须使用动态占位符,而不是静态值,域名除外
由于
答案 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);