我在这里难过,问了几个不同的方法。我需要做的是点击一个标签返回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")
但它仍然没有工作。有任何想法吗?感谢
答案 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>
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
});
});