我有一个PHP功能,我希望将其集成到我的(现有)网页中。此外,我希望它在用户单击页面上的链接时执行。该函数需要接受链接的文本作为输入参数。
我为将数据发送到PHP脚本而研究的所有内容似乎都涉及使用表单来获取用户输入。页面需要不接受用户输入,只需将链接文本发送到函数并执行该函数。
所以我猜问题是两部分的。首先,如何在链接点击上执行PHP脚本。第二,如何在不使用表单的情况下将页面信息传递给此函数。如有必要,我愿意使用其他技术,如AJAX或JavaScript。
编辑::具体是我想要做的。我有一个HTML输出代表一些源代码的文档。在这个输出上是一系列链接(指代源代码中的代码结构),在被点击时,将调用安装在Web服务器上的一些python函数(这使我认为它需要通过PHP调用)。但是,python函数需要链接上的名称作为输入参数。
通过让JavaScript收集输入并调用PHP函数,我可以实现某种交互吗?
对于模糊不清,我对网络开发不可思议。如果有什么不清楚,请告诉我。
答案 0 :(得分:3)
你需要有一个由onclick事件触发的JS函数,然后发送一个AJAX请求并返回false(因此它不会被重定向到浏览器中的新页面)。您可以在jQuery中执行以下操作:
<强> jQuery的:强>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
function doSomething() {
$.get("myfile.php");
return false;
}
</script>
在您的页面正文中
<a href="#" onclick="doSomething();">Click Me!</a>
在 myfile.php :
当访问者点击链接时,您可以添加要执行的任何功能。例如:
<?php
echo "Hey, this is some text!";
?>
这是一个基本的例子。我希望这会有所帮助。
答案 1 :(得分:1)
您将需要使用AJAX来完成此操作而无需离开页面。这是一个使用jQuery和AJAX的例子(假设你已经包含了jQuery库):
第一档:
<script language="javascript">
$(function(){
$('#mylink').click(function(){
$.get('/ajax/someurl', {linkText: $(this).text()}, function(resp){
// handle response here
}, 'json');
});
});
</script>
<a href="#" id="mylink">This text will be passed along</a>
PHP文件:
$text = $_REQUEST['linkText'];
// do something with $text here
答案 2 :(得分:1)
如果您熟悉jQuery,如果您不希望站点重定向但执行您的功能,则可以执行以下操作:
你的html头中的:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
链接:
<a href="#" onclick="$.get('ajax.php');">Execute function</a>
在ajax.php中,你输入了要执行的函数。
答案 3 :(得分:1)
也许是这样的:
<a href="#" onclick="return sendText(this);"></a>
....
<script>
function sendText(e)
{
$.ajax({
url: '/your/url/',
data: {text: $(e).html()},
type: 'POST'
});
}
</script>
答案 4 :(得分:1)
您可以使用查询字符串。例如,如果您链接到此页面:
example.php?text=hello
(您可以向该网址发送ajax GET请求,而不是直接链接)
在example.php中,您可以像这样获取值'hello':
<?php
$text = $_GET['hello'];
然后调用你的函数:
myfunction($text);
请确保在将值传递给函数之前清理并验证该值。根据你在该功能中所做的事情,结果可能是致命的!
此链接可能有所帮助:
答案 5 :(得分:0)
这是一个过于简单的例子,说明你要做的事情。
您的链接:
<a href="somefile.php?action=Some+Action">Some Action</a>
您的PHP文件:
<?php
if (isset($_GET['action']))
{
// make sure to validate your input here!
some_function($_GET['action']);
}
答案 6 :(得分:-1)
PHP是一种服务器端语言,即它不能在Web浏览器中运行。
如果您希望浏览器中的某个功能在点击链接时运行,您可能正在谈论做一些Javascript。
您可以使用Javascript查找链接节点中包含的文本值并将其发送到服务器,然后让您的PHP脚本对其进行处理。