通过HTML链接调用PHP函数(无表格)

时间:2013-06-25 15:09:09

标签: php javascript html input

我有一个PHP功能,我希望将其集成到我的(现有)网页中。此外,我希望它在用户单击页面上的链接时执行。该函数需要接受链接的文本作为输入参数。

我为将数据发送到PHP脚本而研究的所有内容似乎都涉及使用表单来获取用户输入。页面需要不接受用户输入,只需将链接文本发送到函数并执行该函数。

所以我猜问题是两部分的。首先,如何在链接点击上执行PHP脚本。第二,如何在不使用表单的情况下将页面信息传递给此函数。如有必要,我愿意使用其他技术,如AJAX或JavaScript。

编辑::具体是我想要做的。我有一个HTML输出代表一些源代码的文档。在这个输出上是一系列链接(指代源代码中的代码结构),在被点击时,将调用安装在Web服务器上的一些python函数(这使我认为它需要通过PHP调用)。但是,python函数需要链接上的名称作为输入参数。

通过让JavaScript收集输入并调用PHP函数,我可以实现某种交互吗?

对于模糊不清,我对网络开发不可思议。如果有什么不清楚,请告诉我。

7 个答案:

答案 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脚本对其进行处理。