将PHP代码回放到javascript innerHTML中

时间:2015-05-10 18:10:00

标签: 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函数作为字符串。不幸的是,id不会改变文档中的任何内容。

var like=document.getElementById("like__image");
addEventListener("click",function(event){
    event.preventDefault();
    var likeBox=document.getElementById("like__box");
    likeBox.innerHTML="<?php count_likes()  ?>";
});

如何在我的Javascript中调用我的PHP函数?

2 个答案:

答案 0 :(得分:1)

由于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
    }
});

答案 1 :(得分:1)

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

您可以做的是添加一个调用您的函数的count_likes.php脚本,并从客户端调用ajax来设置所需元素的innerHTML

所以而不是

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

你可以做到

$("#like__box").load("count_likes.php");

假设您的网站中包含jquery。将load调用视为原始设置innerHTML的异步版本。