将PHP代码回显到javascript innerHTML中

将PHP代码回显到javascript innerHTML中,javascript,php,Javascript,Php,我有一个PHP函数,每次运行时都会添加+1 function count_likes(){ $collect=file_get_contents('like_counter.txt')+1; $count=file_put_contents("like_counter.txt", $collect); echo $collect; 我有一个javascript,可以运行前面提到的PHP函数。 也就是说,当用户每次单击按钮时,我都会以字符串形式调用innerHTML中的PHP函数

我有一个PHP函数,每次运行时都会添加+1

function count_likes(){
  $collect=file_get_contents('like_counter.txt')+1;
  $count=file_put_contents("like_counter.txt", $collect);
  echo $collect;

我有一个javascript,可以运行前面提到的PHP函数。 也就是说,当用户每次单击按钮时,我都会以字符串形式调用
innerHTML
中的PHP函数

var like=document.getElementById("like__image");
addEventListener("click",function(event){
    event.preventDefault();
    var likeBox=document.getElementById("like__box");
    likeBox.innerHTML="<?php count_likes()  ?>";
});
var like=document.getElementById(“like_u图像”);
addEventListener(“单击”),函数(事件){
event.preventDefault();
var likeBox=document.getElementById(“like_uu-box”);
likeBox.innerHTML=“”;
});

如何在Javascript中调用PHP函数

由于PHP在服务器上运行,JavaScript在用户浏览器上运行,因此无法直接调用该函数。 但是您可以使用AJAX通过JavaScript向服务器发送调用

如果您使用的是jQuery,它将如下所示:

$.ajax({
    url: 'www.yoursite.com/path/to/your/php/function',
    data: {action: 'your-action'},
    type: 'post',
    success: function(serverReturn) {
         // handle the PHP-return here
    }
});

Javascript
在客户端运行,而
PHP
在服务器端运行,因此您的
echo
调用将按原样呈现,因为浏览器端没有PHP解释器

您可以做的是添加一个调用函数的
count\u likes.php
脚本,并从客户端进行一个ajax调用,该调用将设置所需元素的
innerHTML

所以不是

likeBox.innerHTML="<?php count_likes()  ?>";

假设您的站点中包含jquery。将
load
调用看作
innerHTML

原始设置的异步版本,javascript必须向PHP脚本发送ajax调用。PHP是在服务器上执行的,一旦页面加载就不可用了。你把Javascript和PHP混合在一起,希望它能顺利工作。您需要使用ajax,以便从javascript向您的服务器发出新的请求,以便PHP可以执行该函数。@chris85还有其他方法吗?没有,但是ajax使用jquery非常简单。现在,当加载页面时,PHP函数总是被调用。PHP就是这样工作的,只有在执行/解析页面时才会执行它。单击事件没有任何作用。您需要在click事件中对另一个只执行该函数的文件/页面进行ajax调用。这样,当有人点击时,php就会被执行。正如前面提到的,jQuery是一个很好的库。很抱歉,我在手机上输入了这个,第一次就丢失了这个示例。因此,编辑:)这是一种获得真正缩短表达式的有趣方式,因此它看起来非常适合保留问题的“精神”。顺便说一句,我多次使用jQuery,甚至没有注意到该方法的存在!谢谢
$("#like__box").load("count_likes.php");