我应该使用提交按钮,常规按钮或链接来执行此操作吗?

时间:2016-05-13 15:36:19

标签: javascript php html mysql

我已经创建了一个注释源,它使用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);

?>

我现在希望用户能够对这些帖子进行投票。为此,将使用以下过程:

process

为此,我想您需要在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>

然后创建必要的功能。

为此目的,哪种输入类型是正确的?

道歉,如果这是一个相当基本的问题 - 我还在学习所有这些的基础知识。

4 个答案:

答案 0 :(得分:0)

您可以通过多种方式以专业和更有组织的方式实现这一目标,我总是使用data属性为这些功能执行javascript操作,例如:

<button type="button" class="js_vote" data-type="upvote" data-post="32323">Upvote</button>
  • 数据类型可用于upvote / downvote,仅用于识别投票类型
  • data-post可用于放置帖子ID并在javascript函数中使用它来识别帖子

然后在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解决方案
  • 按钮/链接'onclick'相当于彼此

在javascript中执行此操作可能更容易(因为您可以在不重新加载页面的情况下操作dom来更改计数器)。

答案 2 :(得分:0)

使用按钮或<a>取决于更容易设计的样式(它们的功能将相同)。在javascript函数中使用ajax来做逻辑。

答案 3 :(得分:0)

只要您有一些方法可以将有意义的标识符传递给likefunction(),表明正在投票的帖子,

这些元素中的任何一个都可以使用。

如果要从表单字段提交用户数据以及事件单击,则按钮和输入[submit]都很有用。但在这种情况下,我猜测这是不必要的,因为您需要的所有信息都可以注入到被执行元素的dom属性中。

因此,对于主题和融入你的dom结构,哪个元素最简单。我个人会选择<a>,因为它需要的语法最少,但那只是我。