php - 通过点击 HTML 链接触发 PHP 函数

标签 php html function

是否可以通过单击链接来触发 PHP 函数?还是我应该坚持使用表单提交方法?如果点击链接有效,链接应该指向哪里?

这是一个示例代码:

<?php
    session_start();
    function listMe($username){
        $username = mysql_real_escape_string($username);
        $query = mysql_query("INSERT INTO List (Usernames) VALUES ('$username')") or die(mysql_error());
    }
?>

<html>
    <head>
        <title>SAMPLE</title>
    </head>
    <body>
        <a href="**__???___**">Add my username to the list</a>
        <?php 
            listMe($_SESSION['Username']); 
        ?>
    </body>
</html>

也许有人可以为我指明正确的方向。谢谢!

最佳答案

您可以通过使用表单提交重新加载整个页面,或将特定页面内容直接加载到页面中而不需要从一个页面转到另一个页面来实现。第二种方法称为“AJAX”(异步 Javascript 和 XML)。这里有两个示例,每个示例都指定了一个。

表单提交方式

表单.php

<?php
function get_users(){
}
if(isset($_GET['get_users']))
{
    get_users();
}
?>
...
<form method="get">
    <input type="hidden" name="get_users">
    <input type="submit">
</form>

AJAX 方法

ajax_file.php

<?php
function call_me(){
    // your php code
}
call_me();
?>

form.html

<html>
<head>
<script type="text/javascript">
function loadXMLDoc()
{
    var xmlhttp;
    if (window.XMLHttpRequest)
    {
        xmlhttp = new XMLHttpRequest();
    }
    else
    {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function()
    {
        if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
        {
            // do something if the page loaded successfully
        }
    }
    xmlhttp.open("GET","ajax_file.php",true);
    xmlhttp.send();
}
</script>
</head>
<body>
<a href="#" onclick="loadXMLDoc()">click to call function</a>
</body>
</html>

关于php - 通过点击 HTML 链接触发 PHP 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8662535/

相关文章:

php - Laravel FormRequest 获取输入值

php - 两个 ajax 函数之一不起作用

javascript - 自定义谷歌地图按钮位置

html - CSS - 显示表格和表格单元格 div 上的水平空白

html - 如何将图像放在html页面的中心?

javascript - 从外部调用jquery函数内的变量

php - MySQL 通过 LOAD DATA INFILE 从 csv 文件导入数据不起作用

php - 如何在 visual composer 中创建动态字段?

ios - 我无法在另一个 ViewController 中执行函数

Postgresql - 编辑函数签名