2013-06-25 47 views
2

我有一个PHP函数,我想将其集成到我的(现有)网页中。此外,我希望在用户点击页面上的链接时执行此操作。该函数需要接受链接的文本作为输入参数。通过HTML链接调用PHP函数(无形式)

我研究过的将数据发送到PHP脚本的一切似乎都涉及使用表单来获取用户输入。该页面不需要用户输入,只需将链接文本发送到该函数并执行该功能即可。

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

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

是否有某种交互可以通过让JavaScript收集输入并调用PHP函数来实现?

对不起,模糊不清,我是INCREDIBLY新的web开发。如果有什么不清楚的,请告诉我。

+0

您的PHP脚本可以在不使用表单的情况下从URL读取信息;你可以通过'$ _GET'来访问它,如果你传递一个&符号分隔的field = value项目列表,或者你可以在$ _SERVER ['QUERY_STRING'] – andrewsi

+0

中得到整个事物,你可以使用GET as andrewsi建议或使用AJAX并通过POST传递信息。 – Naryl

+0

@andrewsi你应该写这个答案,因为它是正确的 –

回答

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 
-1

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

如果您希望浏览器中的某个功能点击链接进行操作,您可能正在谈论如何使用一些Javascript。

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

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']); 
} 
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你把你的功能

被执行。

+0

为什么使用内联事件绑定,如果你有jQuery? '$(function(){$('a.my-link')。bind('click',function(){$ .get('ajax.php');});});' – andy

+0

因为它更简单为新手理解和工作是一样的 – DanFromGermany

+0

它确实,但它通常是不好的做法 – andy

1

也许是这样的:

<a href="#" onclick="return sendText(this);"></a> 
.... 
<script> 
function sendText(e) 
{ 
$.ajax({ 
     url: '/your/url/', 
     data: {text: $(e).html()}, 
     type: 'POST' 
     }); 
} 
</script> 
+0

虽然,技术上这段代码是正确的,javascript并不意味着'jQuery' :) – tftd

+0

的cource,但是对于ajax来说,使用jquery好得多,然后自制的拐杖 – drull

1

您可以使用查询字符串这一点。例如,如果您链​​接到这个网页:

example.php?text=hello 

(而不是把一个直接的联系,你也可以发送一个AJAX GET请求到URL)

内使用example.php,即可获得价值像这样的 '你好':

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

然后调用你的函数:

myfunction($text); 

请确保您萨尼在将其传递给函数之前对其进行确认和验证。根据你在这个功能里面做什么,结果可能是致命的!

此链接可能帮助:

3

你需要具有由一个onclick事件,然后发送一个AJAX请求,并返回触发的JS功能假(所以它不会被重定向到浏览器中的新页面)。你可以做以下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

你可以添加任何你想要执行的功能itor点击链接。例如:

<?php 
echo "Hey, this is some text!"; 
?> 

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