是否可以创建一个HREF
链接来调用PHP函数并传递一个变量?
<?php
function sample(){
foreach ($json_output->object ){
$name = "{$object->title}";
$id = "{$object->id}";
print "<a href='search($id)' >$name</a>";
}
}
function search($id){
//run a search via the id provide by the clicking of that particular name link
}
?>
您可以在不使用框架的情况下轻松完成此操作。默认情况下,a之后有什么?在URL中是一个GET变量。
例如,www.google.com/search.html?term=blah
将访问www.google.com/search.html,并传递值为"blah"的GET变量"term"。
多个变量可以用&
例如,www.google.com/search.html?term=blah&term2=冷却
GET方法独立于PHP,是HTTP规范的一部分。
PHP通过自动创建超全局变量$_GET[]来轻松处理GET请求,其中每个数组索引都是GET变量名,数组索引的值就是变量的值。
这里有一些演示代码来展示它是如何工作的:
<?php
//check if the get variable exists
if (isset($_GET['search']))
{
search($_GET['search']);
}
function Search($res)
{
//real search code goes here
echo $res;
}
?>
<a href="?search=15">Search</a>
它将打印出15,因为它是搜索的值,而我的搜索伪函数只打印出它得到的任何结果
HTML输出需要看起来像
<a href="php_file.php?id=1">anchor text</a>
您的函数需要以该格式输出这些信息。
不,不能直接执行。您只能链接到URL。
在这种情况下,您可以在查询字符串中传递函数名和参数,然后用PHP进行处理,如下所示:
print "<a href='yourphpscript.php?fn=search&id=$id' >$name</a>";
并且,在PHP代码中:
if ($_GET['fn'] == "search")
if (!empty($_GET['id']))
search($id);
请确保对GET参数进行了清理。
不是,至少不是直接。
- 您可以链接到URL
- 您可以在该URL的查询字符串中包含数据(
<a href="myProgram.php?foo=bar">
) - 该URL可以由PHP程序处理
- 这个PHP程序可以调用一个函数作为它所做的唯一事情
- 您可以将数据从
$_GET['foo']
传递给该函数
是的,你可以做到。例如:
从您的角度来看:
<p><a href="test/1" class="btn blue">Edit</a>
其中,1是要发送的参数。它也可以是从对象中获取的数据。
从您的控制器:
function test($id){
#code...
}
只需执行此
<?php
function sample(){
foreach ($json_output->object ){
$name = "{$object->title}";
$id = "{$object->id}";
print "<a href='?search=" . $id . "' > " . $name . "</a>";
}
}
if (isset($_REQUEST['search'])) {
search($_REQUEST['search']);
}
function search($id){
//run a search via the id provide by the clicking of that particular name link
}
?>
此外,请确保您的$json_output
可通过sample()
函数访问
你可以用任何一种方法
<?php
function sample(){
global $json_output;
// rest of the code
}
?>
或
<?php
function sample($json_output){
// rest of the code
}
?>
使用值在链接的href
中设置查询字符串,并使用$_GET
或$_REQUEST
访问它
<?php
if ( isset($_REQUEST['search']) ) {
search( $_REQUEST['search'] );
}
function Search($res) {
// search here
}
echo "<a href='?search='" . $id . "'>" . $name . "</a>";
?>
是的,这是可能的,但您需要一个MVC类型的结构,并启用.htaccess
URL重写。
以下是一些阅读材料,让您开始了解MVC的全部内容。
http://www.phpro.org/tutorials/Model-View-Controller-MVC.html
如果你想选择一个甜美的框架,而不是重新发明MVC轮子,我强烈建议,LARAVEL 4