php循环中的javascript切换按钮

php循环中的javascript切换按钮,javascript,php,jquery,Javascript,Php,Jquery,我在一个项目网站上创建了一个状态系统,作为一个学习者,我正在创建一个项目来学习和更好地进行web开发。我在php方面做得相当好,但现在我正试图开始学习javascript方面的东西,老实说,我在这方面做得相当差劲 我使用一个php循环来获取已提交到数据库的所有状态,在该循环中,我还获取已提交到每个状态的所有回复 我有一个类似的状态和回复系统,除了当你点击按钮喜欢或不喜欢它时,它不会消失(因为没有javascript代码),因此如果你快速点击“喜欢提交”按钮(或不喜欢php已经运行并完成它的工作)

我在一个项目网站上创建了一个状态系统,作为一个学习者,我正在创建一个项目来学习和更好地进行web开发。我在php方面做得相当好,但现在我正试图开始学习javascript方面的东西,老实说,我在这方面做得相当差劲

我使用一个php循环来获取已提交到数据库的所有状态,在该循环中,我还获取已提交到每个状态的所有回复

我有一个类似的状态和回复系统,除了当你点击按钮喜欢或不喜欢它时,它不会消失(因为没有javascript代码),因此如果你快速点击“喜欢提交”按钮(或不喜欢php已经运行并完成它的工作)你可能会搞乱喜欢的数量,它可能会变为负数或有额外的喜欢,因为你点击它的速度比服务器处理和重新加载页面的速度快。我已经设置好了,当你喜欢一个状态时,你会被放入数据库,因为你喜欢这个状态,所以如果你喜欢一个状态,php会选择你喜欢这个状态,并回显一个不喜欢提交按钮,而不是喜欢

我想停止这个小故障,因为这是不好的做法,有什么用户可以垃圾邮件,因为对于一个他们可以搞砸计数,他们也可以让服务器运行时间,因为他们正在发送一次加载的进程,如果你有100个或更多的用户在同一时间这样做,服务器将与所有的问题斗争进程同时发生

通过使用每个状态/回复的id,我可以为每个“喜欢/不喜欢提交”按钮提供一个唯一的id,但需要为php循环创建的每个状态/回复生成一个js脚本

此javascript适用于单个按钮,但不适用于循环,它只切换第一个按钮,因为所有按钮都具有相同的id,如果我在javascipt中回显php变量作为按钮的id,则javascript仅适用于页面上最后一个“喜欢/不喜欢”按钮,因为只创建了一个javascript脚本写在纸上

function action() {
            document.getElementById('toggler').style.visibility = 'hidden';
    }
与此相关的提交按钮是

<input type="submit" name="status_like" value="Like" id="toggler" onClick="action();"/>

我试图做到这一点,无论页面上有多少个相似的按钮被回响,javascript只会切换已按下的实际提交按钮,这将阻止用户实际滥发该按钮,因为当页面重新加载时,按钮将恢复到他们按下提交按钮之前的状态

在未来,我将研究ajax来为我完成表单提交部分,但在此之前,我需要更多地练习javascript本身

我之所以包含这个jsfiddle链接,是因为它包含了我当前的代码,但由于某些原因,它实际上在jsfiddle中不起作用,但在我实际的网站页面上起作用。我相信我只在该页面上包含了jquery 2.1.0,即使我在JSFIDLE中包含了它,它仍然不起作用,所以我对此表示歉意,但这再次是因为我开始学习javascript

我知道使用jquery不会帮助我学习javascript的基础知识,但我并不介意在此时使用jquery,因为我知道,对于回答这个问题的人来说,编写这样的代码可能不像使用jquery那么简单,这就是为什么我不介意使用jquery来做这件事,但是如果使用jquery,那么我会希望它能与jquery 2.1.0配合使用

如果有人能帮我,我将非常感激


谢谢您的时间

我们真的需要这些信息吗?请提供TL;DR版本,如果可能的话。看来你的小提琴不起作用了。我写过它不起作用,但事实上它在我的网站上起作用了。我不知道为什么它在JSFIDLE中不起作用,但在我的网站上。我的站点上只包含jquery 2.1.0,但在JSFIDLE中选择它似乎仍然不起作用:(@Molecular我已经包含了所有的信息,所以你可以理解我正在尝试做什么以及我正在使用的方法,因为如果我没有所有的信息,那么会有人阅读我的问题并回答我的问题,就像我没有做过php循环一样,也有人可能不理解我实际上在做什么ng待办事项。问题很长。是的,但我确实觉得这一切都是相关的和必要的,因此您可以准确地理解我正在尝试做什么。请尝试使用此关键字设置相应元素的visibility属性,然后单击此。setAttribute('visibility','hidden));