我有以下代码,但为什么函数在没有按下链接或遇到 if 语句的情况下执行。
if($_SESSION['log'] == true)
{
echo "<a href="'. function() .'"">LINK</a>;
}
else
{
.......
}
你不能这样称呼它。
您可以做的是将链接设置href
到同一页面并将一些传递get params
给该页面link
,get params isset
然后传递给call
那个页面function
。
例子
<a href="same.php?action=callfunction">Click</a>
调用函数的代码如下。
if(isset($_GET['action']) && $_GET['action'] == 'callfunction'){
//call function here
}
为什么函数在不按链接的情况下执行
PHP 处理文本(通常)。它是处理 HTML 的浏览器。您正在处理一个字符串,该字符串由连接到函数调用的返回值的字符串文字连接到另一个字符串文字(或者如果您的引号没有被破坏并导致语法错误)。
如果您希望该函数仅在单击链接时触发,则将该href
属性设置为包含function()
.
或满足 if 语句。
那不会发生。该函数出现在语句的主体内,因此除非为真if
,否则它不会触发。if
PHP 是一种服务器端语言。您不能以这种方式从浏览器中单击的链接触发 PHP 中的函数调用。
您需要在查询字符串中构造一个包含所有必需参数的 URL,并将其传递回 PHP 脚本,以便 PHP 对信息进行处理
你可以使用 JQuery 方法
比如 $.ajax({ url: "script.php", type: "POST", data: "id=1", success: function(result){ alert(result); } }
在php中
$id = $_POST['id'];
echo "The id is ".id;
您将在 $.ajax 成功状态的结果中获得 php 函数输出。