Javascript函数返回PHP get_file_contents

时间:2017-11-15 20:24:47

标签: php jquery

我在这里难过,问了几个不同的方法。我需要做的是点击一个标签返回PHP中的文本文件的内容。我认为只需在JS中获得锚标记的click和ID就可以了,并将PHP方法放在模板中。 $ textPath是var,指向设置中的文件。它转到帮助部分,文本文件对用户进行身份验证。因此UL最终成为www.blahblah.com/help

  <li><a id="help" target="_blank"><? echo file_get_contents($textPath);?> </a></li>

  //Simple JS (part of another 'open' function for the menu)

   $('#help').attr("href", "/help")

但它仍然没有工作。有任何想法吗?感谢

1 个答案:

答案 0 :(得分:0)

在此处突出显示部分代码:

<a id="help" target="_blank"><? echo file_get_contents($textPath);?> </a>

看到你正在使用简写的echo标签。开始标记应为<?= <?的{​​{1}}。由于这是一个简写的echo标签,因此您不需要使用echo构造。

这应该可以正常工作:

<a id="help" target="_blank"><?=file_get_contents($textPath);?> </a>
  

Quoting from the PHP Manual

     

echo 也有一个快捷语法,您可以使用等号立即跟随开始标记。在PHP 5.4.0之前,此短语法仅适用于启用了short_open_tag配置设置。

I have <?=$foo?> foo.

提出问题,您想要返回文件的内容。您最好的选择是通过AJAX实现这一目标。

您可以根据需要输出。最好的方法是创建一个单独的php文件来处理所有的ajax调用并将输出作为纯文本返回。要对用户进行身份验证,只需在ajax.php页面中包含auth.php文件(假设您使用的是该文件)。

<强> ajax.php

<php
//Below code checks if a GET request is sent
if (isset($_GET['path'])) {
echo file_get_contents($textPath);
}
?>

<强>的jQuery

$('#help').click(function(e) {
  e.preventDefault(); // Prevents the default action
  // Send an AJAX request
  $.get("ajax.php?path", function(s) {
    //s is the responsetext. It contains the response from the server
    your code here
  });
});