Javascript 如何确定用户希望查看的帖子以及从firebase获取相应数据?
我正在写一个简单的论坛,在主页上有一个帖子标题列表。我想让用户点击文章标题并链接到postPage.html。在postPage.html上,我需要从firebase数据库获取标题和内容。问题是我不知道用户点击了哪个帖子。Javascript 如何确定用户希望查看的帖子以及从firebase获取相应数据?,javascript,html,firebase,firebase-realtime-database,Javascript,Html,Firebase,Firebase Realtime Database,我正在写一个简单的论坛,在主页上有一个帖子标题列表。我想让用户点击文章标题并链接到postPage.html。在postPage.html上,我需要从firebase数据库获取标题和内容。问题是我不知道用户点击了哪个帖子。 我一直在考虑使用document.onclick来获取用户单击的标题,这样我就可以使用该标题作为在firebase中查找帖子内容的路径
我一直在考虑使用document.onclick来获取用户单击的标题,这样我就可以使用该标题作为在firebase中查找帖子内容的路径
但是如果有两篇帖子具有相同的标题,可能会出现问题。
下面是我如何在主页上显示文章标题列表的
var str_1 = "<tr><td><a href='postPage.html'>";
var str_2 = "</td></tr>\n";
postRef.once('value').then(function(snapshot){
snapshot.forEach(function(childSnapshot){
var childData = childSnapshot.val();
total_post[total_post.length] = str_1 + childData.post_title + str_2;
});
document.getElementById('allposts').innerHTML = total_post.join('');
}).catch(e => console.log(e.message));<br/>
var str_1=”
人1
人2
我想不出其他方法来实现这一点。任何建议和提示都会有很大帮助。您应该在每行中添加帖子的键,并将其作为查询字符串值添加到postPage url。我对您的原始代码进行了如下修改:
var str_1 = "<tr><td>";
var str_2 = "</a></td></tr>";
postRef.once('value').then(function(snapshot){
snapshot.forEach(function(childSnapshot){
var childData = childSnapshot.val();
total_post[total_post.length] = str_1 + "<a href='postPage.html?postId=" + childSnapshot.key + "'>" + childData.post_title + str_2;
});
document.getElementById('allposts').innerHTML = total_post.join('');
}).catch(e => console.log(e.message));
您需要在每个href中添加一个“唯一”键
a href=“postPage.html?x=person1”
等?@WhaleShark您介意投票表决我的答案吗?谢谢!
var str_1 = "<tr><td>";
var str_2 = "</a></td></tr>";
postRef.once('value').then(function(snapshot){
snapshot.forEach(function(childSnapshot){
var childData = childSnapshot.val();
total_post[total_post.length] = str_1 + "<a href='postPage.html?postId=" + childSnapshot.key + "'>" + childData.post_title + str_2;
});
document.getElementById('allposts').innerHTML = total_post.join('');
}).catch(e => console.log(e.message));
function getParameterByName(name, url) {
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}