Javascript 我应该使用提交按钮、常规按钮或链接来执行此操作吗?
我已经创建了一个注释提要,使用PHP中的while语句从MySQL数据库中检索。此操作的代码类似于以下代码:Javascript 我应该使用提交按钮、常规按钮或链接来执行此操作吗?,javascript,php,html,mysql,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 timesta
<?
$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);
?>
您可以通过多种方式以专业且更具组织性的方式实现这一点,我一直使用数据
属性来执行此类功能的javascript操作,例如:
<button type="button" class="js_vote" data-type="upvote" data-post="32323">Upvote</button>
或者,如果要使用onclick
,则可以执行以下操作:
<a href="javascript:void(0);" onclick="js_vote('upvote',90239);">Upvote</a>
每个人在实施自己系统的布局/结构时都有自己不同的思维方式和逻辑,我向您推荐了一种简单易行的方法,您可以更好地组织数据
最后,您可以选择如何设计它。。相同的属性数据属性您可以将它们与锚定标记一起使用,甚至可以与div或span或任何您想要的标记一起使用。我想这取决于您是想依赖javascript还是表单提交来完成操作
如果您不想使用Javascript提交表单,那么我会使用form方法
另一种方法是在表单中使用button元素(默认情况下按钮将提交表单)和“action”属性:
<form name="$postid" action="./upvote-comment.php" method="post">
<button>Upvote Comment</button>
</form>
向上投票的评论
如果您想要/需要使用javascript,那么这取决于您想要使用浏览器定义的默认按钮样式还是链接样式。除了它的外观,我看不出使用链接和按钮会有什么不同
总之:
- 表单是一个完全合理的非javascript解决方案
- 按钮/链接“onclick”彼此等效
使用javascript可能更容易操作(因为您只需操作dom,而无需重新加载页面来更改计数器)。使用按钮或
,具体取决于哪种样式更容易设置(它们的功能将是相同的)。在javascript函数中使用ajax来执行逻辑。只要您能够通过某种方式将有意义的标识符传递给您的likefunction()
,该标识符指示被提升的帖子,这些元素中的任何一个都可以工作
如果您希望在单击事件时从表单字段提交用户数据,则按钮和输入[submit]都很有用。但是在这种情况下,我猜这是没有必要的,因为您需要的所有信息都可以被注入到所操作元素的dom属性中
因此,真正的问题是哪一个元素对您来说是最简单的主题,并集成到您的dom结构中。就我个人而言,我会选择
,因为它需要最少的语法,但这就是我自己。谢谢你这么好的回答。最后一个问题:为了实现您提到的第一个解决方案,我会在
标记中包含js吗?如果是这样,它是否应该在单击Upvote按钮时运行?作为测试,我这样做了,但添加了document.getElementById('result').innerHTML=“test”代码>到js,然后
到文件正文。作为测试,我这样做了,但添加了document.getElementById('result').innerHTML=“test”编码>到js,然后
到文件体。当我运行此程序时,单击Upvote按钮没有得到任何结果。您可以将该代码包含到脚本标记中,也可以包含在一些js文件中,这两个文件都可以使用。。。只要记得在文档就绪广告上初始化它,据我所知,我给你的代码应该可以正常工作,因为我已经多次使用过此类代码。请仔细检查你对代码所做的操作,并检查控制台的错误日志。如果有任何错误,请将其发布在这里。同时,你是否正在向服务器发送请求使用ajax?而应该是,因为uou正在javascript函数中重新引用结果。
function js_vote(type,post_id){
// and from here perform the ajax request to send the data to the server.
}
<form name="$postid" action="./upvote-comment.php" method="post">
<button>Upvote Comment</button>
</form>