2

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

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

所以我想这个问题分为两部分。首先,如何在点击链接时执行 PHP 脚本。其次,如何在不使用表单的情况下将页面信息传递给该函数。如有必要,我愿意使用其他技术,例如 AJAX 或 JavaScript。

编辑:: 特别是我想要做的事情。我有一个 HTML 输出,代表一些源代码的文档。在此输出上是一系列链接(指源代码中的代码结构),单击这些链接后,将调用安装在 Web 服务器上的一些 python 函数(这让我认为它需要通过 PHP 调用)。然而,python 函数需要链接上的名称作为输入参数。

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

抱歉含糊不清,我对网络开发非常陌生。如果有任何不清楚的地方,请告诉我。

4

7 回答 7

3

您需要有一个 JS 函数,该函数由 onclick 事件触发,然后发送 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!";
?>

这是一个基本的例子。我希望这有帮助。

于 2013-06-25T15:21:24.400 回答
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
于 2013-06-25T15:13:59.267 回答
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 中放入要执行的函数。

于 2013-06-25T15:15:17.423 回答
1

也许是这样的:

<a href="#" onclick="return sendText(this);"></a>
....
<script>
function sendText(e)
{
 $.ajax({
         url: '/your/url/',
         data: {text: $(e).html()},
         type: 'POST' 
        });
}
</script>
于 2013-06-25T15:16:01.563 回答
1

您可以为此使用查询字符串。例如,如果您链​​接到此页面:

example.php?text=hello

(除了放置直接链接,您还可以向该 URL 发送 ajax GET 请求)

在 example.php 中,您可以像这样获取值 'hello':

<?php
$text = $_GET['hello'];

然后调用你的函数:

myfunction($text); 

请确保在将值传递给函数之前对其进行清理和验证。根据您在该函数中所做的事情,结果可能是致命的!

此链接可能会有所帮助:

于 2013-06-25T15:16:30.517 回答
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']);
}
于 2013-06-25T15:12:53.463 回答
-1

PHP 是一种服务器端语言,即它不在网络浏览器中运行。

如果您希望浏览器中的功能在单击链接时进行操作,您可能正在谈论执行一些 Javascript。

您可以使用 Javascript 查找链接节点中包含的文本值并将其发送到服务器,然后让您的 PHP 脚本处理它。

于 2013-06-25T15:12:35.410 回答