我已经创建了一个注释源,它使用PHP中的while语句从MySQL数据库中检索。此代码类似于以下内容:
<?
$con = mysqli_connect("localhost","username","password","database");
if (!$con)
{
die('Could not connect: ' . mysqli_connect_error());
}
$query = "SELECT * FROM table ORDER BY timestamp DESC LIMIT 0 , 1000";
$comments = mysqli_query($con, $query);
echo "<h1>Recent Posts</h1><br><br><hr>";
while($row = mysqli_fetch_array($comments, MYSQLI_ASSOC))
{
$comment = $row['comment'];
$timestamp = $row['timestamp'];
echo " <div class='card'>
<h3>Handle: $handle</h3><br />
<p>$comment</p><br /><br />
<img src='$file' style='width:60%; margin-left:20%; margin-right:20%; margin-top:5px; border-style:solid;'><br>
<p style='color: grey'>$timestamp</p><hr>
</div>
";
}
mysqli_close($con);
?>
我现在希望用户能够对这些帖子进行投票。为此,将使用以下过程:
为此,我想您需要在Feed代码的echo
部分添加以下内容之一:
<button onclick = "likefunction()">Upvote Comment</button>
<form name="$postid" method="post"><input type="submit" value="Upvote Comment"></form>
<a onclick = "likefunction()">Upvote Comment</a>
然后创建必要的功能。
为此目的,哪种输入类型是正确的?
道歉,如果这是一个相当基本的问题 - 我还在学习所有这些的基础知识。
答案 0 :(得分:0)
您可以通过多种方式以专业和更有组织的方式实现这一目标,我总是使用data
属性为这些功能执行javascript操作,例如:
<button type="button" class="js_vote" data-type="upvote" data-post="32323">Upvote</button>
然后在javascript函数中它应该看起来像:
$('.js_vote').on('click',function(e){
var type = $(this).data('type');
var post_id = $(this).data('post');
// and from here perform the ajax request to send the data to the server.
});
或者如果您想使用onclick
,那么您可以执行以下操作:
<a href="javascript:void(0);" onclick="js_vote('upvote',90239);">Upvote</a>
javascript
function js_vote(type,post_id){
// and from here perform the ajax request to send the data to the server.
}
每个人都有自己不同的思维和逻辑方式来实现自己系统的布局/结构,我建议您使用简单易用的方法来更好地组织数据。
最后你可以选择如何设计它。相同的属性数据属性你可以将它们与锚标签一起使用,甚至可以使用div或span或任何你想要的标签。
答案 1 :(得分:0)
我想这取决于你是想依靠javascript还是表单提交动作。
如果您不想使用Javascript提交表单,那么我将使用表单方法。
另一种方法是使用表单中的按钮元素(默认情况下按钮将提交表单)和'action'属性:
<form name="$postid" action="./upvote-comment.php" method="post">
<button>Upvote Comment</button>
</form>
如果您想/需要使用javascript,那么这取决于您是否要使用浏览器定义的默认按钮样式或链接样式。除了看起来之外,我看不出任何使用链接与按钮的行为会有任何不同的原因。
总结:
在javascript中执行此操作可能更容易(因为您可以在不重新加载页面的情况下操作dom来更改计数器)。
答案 2 :(得分:0)
使用按钮或<a>
取决于更容易设计的样式(它们的功能将相同)。在javascript函数中使用ajax来做逻辑。
答案 3 :(得分:0)
只要您有一些方法可以将有意义的标识符传递给likefunction()
,表明正在投票的帖子,
这些元素中的任何一个都可以使用。
如果要从表单字段提交用户数据以及事件单击,则按钮和输入[submit]都很有用。但在这种情况下,我猜测这是不必要的,因为您需要的所有信息都可以注入到被执行元素的dom属性中。
因此,对于主题和融入你的dom结构,哪个元素最简单。我个人会选择<a>
,因为它需要的语法最少,但那只是我。