我制作了一个删除文件的方法。 首先,我将url回显到此文件。 像这样
echo "<a href='$fulr'>$filename</a>";
现在基本上我想调用函数deletefile($file);
我怎么能这样做呢
echo "<a onclick='$this->deletefile($filename)' href='$fulr'>$filename</a>";
甚至可以吗?
或者我如何在php代码中实现类似的东西?
答案 0 :(得分:7)
您似乎对浏览器/服务器通信有错误的想法。你需要做:
<?php
...
printf("<form name=\"delfilefrm\" action=\"delfile.php\" method=\"POST\">
<input type=\"hidden\" name=\"delfile\" value=\"%s\" />
<input type=\"submit\" value=\"Delete %s\" />
</form>", $filename, $filename);
...
?>
在服务器中,以便链接转到服务器上的脚本,或使用JavaScript。我建议使用jQuery的post()函数或类似的AJAX函数:
$.post("delfile.php", { file: \"$filename\" } );
请记住:安全性,安全性,安全性......然后是优雅的降级
感谢waiwai933,David Dorward允许我“快速地忘记了基本点上的树木”。
答案 1 :(得分:1)
在这种情况下,PHP在Web服务器上运行并将一些输出发送到浏览器。
然后,浏览器将该输出作为JavaScript进行处理。
无法直接访问PHP。您必须将HTTP请求发送回服务器。
这可能是一个简单的链接(但不要对删除文件操作,GET操作应该是安全的(或者机器人将遍历您的网站并删除所有内容),表单,或者如果您真的想要涉及JavaScript - XHR(或其他一些可用于执行Ajax的对象)。YUI或jQuery等库可以帮助您解决繁重问题。
无论哪种方式(表单或Ajax),您最终都可能会在POST数据中放置有关要删除的文件的数据。您的PHP脚本将读取此内容(来自$_POST
并调用您想要的函数)。
...如果您确实沿着Ajax路线前进,请不要忘记build on things that work。
答案 2 :(得分:1)
您无法通过Javascript调用PHP代码。
您可以做的是(假设这是在Web服务器上发生的)将GET / POST放到PHP脚本中,传入任何必要的参数,以执行正确的PHP方法。
从PHP中,它更容易一些。如果你正在吐出HTML,你可以添加一个脚本节点来调用Javascript函数(或者只是运行一些Javascript)。
答案 3 :(得分:1)
你不能这样做,因为javascript无法执行php代码,你不能用javascript删除文件所以我认为你必须做这样的事情:
if(isset($_GET['delete'])) unlink($_GET['delete']);
....
echo "<a href='".__FILE__."?delete=$fulr'>$filename</a>";
答案 4 :(得分:1)
你可以这样做:
php:让我们称之为deletefile.php
<?
$file = $_POST['filename'];
deletefile($file);
?>
jQuery:
$('a').click(function(){
$.ajax({
method: 'POST',
url: 'deletefile.php',
data: "filename=" + $(this).text(),
success: function(data) {
alert('File deleted.');
}
});
return false;
});
HTML:
<a href="#" >filename<a/> <!-- filename is the name of your file... -->
答案 5 :(得分:0)
答案 6 :(得分:0)
如果你想从Javascript中调用PHP函数,那么这就差不多了:http://www.phplivex.com/
我多次使用过这个lib,我非常喜欢它。