Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何确定用户希望查看的帖子以及从firebase获取相应数据?_Javascript_Html_Firebase_Firebase Realtime Database - Fatal编程技术网

Javascript 如何确定用户希望查看的帖子以及从firebase获取相应数据?

Javascript 如何确定用户希望查看的帖子以及从firebase获取相应数据?,javascript,html,firebase,firebase-realtime-database,Javascript,Html,Firebase,Firebase Realtime Database,我正在写一个简单的论坛,在主页上有一个帖子标题列表。我想让用户点击文章标题并链接到postPage.html。在postPage.html上,我需要从firebase数据库获取标题和内容。问题是我不知道用户点击了哪个帖子。 我一直在考虑使用document.onclick来获取用户单击的标题,这样我就可以使用该标题作为在firebase中查找帖子内容的路径

我正在写一个简单的论坛,在主页上有一个帖子标题列表。我想让用户点击文章标题并链接到postPage.html。在postPage.html上,我需要从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, " "));
}