gpt4 book ai didi

javascript - 如何判断用户想看哪个帖子,并从firebase获取相应的数据?

转载 作者:行者123 更新时间:2023-11-30 14:39:29 24 4
gpt4 key购买 nike

我正在编写一个简单的论坛,主页上有一个帖子标题列表。我想让用户单击帖子标题并链接到 postPage.html。在 postPage.html 上,我需要从 firebase 数据库中获取标题和内容。问题是我不知道用户点击了哪个帖子。

我一直在考虑使用 document.onclick 来获取用户点击的标题,这样我就可以使用标题作为在 firebase
firebase.database 中查找帖子内容的路径().ref(postTitle).set({post_title: postTitle...})
但如果有两个帖子具有相同的标题,则可能会出现问题。

下面是我如何在主页上显示帖子标题列表。

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/>

html 看起来像这样

<table class="table table-hover">
<thead>
<tr>
<th>Topics</th>
<th>Posted by</th>
</tr>
</thead>
<tbody id="allposts">
<tr>
<td><a href="postPage.html">title1</a></td>
<td>person1</td>
</tr>
<tr>
<td><a href="postPage.html">title2</a></td>
<td>person2</td>
</tr>
</tbody>
</table>


我想不出另一种方法来做到这一点。任何建议和提示都会有很大帮助。

最佳答案

您应该将帖子的键添加到每一行,并将其作为查询字符串值添加到 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));

然后在 postPage.html 页面中,您可以从 url 中获取 postId。根据您要使用的语言,您可以使用不同的方法来获取它。

在 javascript 中,您可以使用这里介绍的方法 How can I get query string values in JavaScript?并执行 getParameterByName('postId');

我抄下来供引用:

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, " "));
}

关于javascript - 如何判断用户想看哪个帖子,并从firebase获取相应的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49900139/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com