Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过Javascript更新数据库,然后重新加载_Javascript_Ajax_Database - Fatal编程技术网

如何通过Javascript更新数据库,然后重新加载

如何通过Javascript更新数据库,然后重新加载,javascript,ajax,database,Javascript,Ajax,Database,所以,我正在创建一个类似于FML和其他网站的网站,人们可以在这里发布内容,其他人可以喜欢/不喜欢和评论 现在,当somoene单击like时,它是一个调用/like/post id的链接,该链接调用一个函数来增加数据库,然后重新加载页面 我想找到一种不必那样做的方法。一位朋友说要尝试ajax或javascript,但我对它们完全没有教育 有人有任何指示吗?我不想完整地解释AJAX请求,但这应该为您指明正确的方向。 不要重新加载页面,而是使用/like/返回like的数量。 然后将数字放入一个可选

所以,我正在创建一个类似于FML和其他网站的网站,人们可以在这里发布内容,其他人可以喜欢/不喜欢和评论

现在,当somoene单击like时,它是一个调用/like/post id的链接,该链接调用一个函数来增加数据库,然后重新加载页面

我想找到一种不必那样做的方法。一位朋友说要尝试ajax或javascript,但我对它们完全没有教育


有人有任何指示吗?

我不想完整地解释AJAX请求,但这应该为您指明正确的方向。 不要重新加载页面,而是使用/like/返回like的数量。 然后将数字放入一个可选元素中,如

<a id="postid" href="#" onclick="like(this);return false;" class="likebtn">Like</a>
<span id="postid-likes">0</span>
然后创建javascript函数

<script>
function like(element) {
    xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4 && xmlhttp.status==200) {
            document.getElementById(element.id+"-likes").innerHTML=xmlhttp.responseText;
        }
    }
xmlhttp.open("GET","/like/"+element.id,true);
xmlhttp.send();
}
</script>

我建议在PHP文件中使用ajax,但您需要查看一些相关教程……您还应该注意,在使用PHP时,您可以通过url传递变量,而不是使用myPHPfile.PHP/like/post id,您应该使用myPHPfile.php?action=like&postid=post id-1来推荐内联javascript,并且您没有发送任何数据或标识符说明您喜欢哪些项目。Raynos也许您最好花时间编写正确的答案?此函数可以放在您的一个javascript文件中,这是一个如何发出请求的示例,而不是将javascript代码放在何处。postid是PHP创建的每个项目的唯一标识符。哦,是的,url应该是类似于/like/posted的。这很有效。不过我花了一点时间才让它工作起来。我最后注意到,您创建的对象是xmlHTTP,但在其他任何地方,您都使用它作为xmlHTTP