javascript - 通过 HTML 按钮传递 PHP 函数(带参数)

标签 javascript php jquery html

基本上,我正在尝试创建一个登录系统,并且我正在使用它,我称之为“动态”,这意味着它包含在我的其他文件中,如果我想使用不同的数据库,我只需传递该数据库即可到登录功能。我知道默认情况下如何执行此操作,但是一旦使用按钮,我就有点困惑。

这是我最基本的形式。

<?php
    createLogin('test', 'test2');

    function createLogin($SQLConnection, $SQLConfig) { 
        echo "<h1> You are currently not logged in!</h1>";
        echo "<form action='handleLogin(".$SQLConnection.",".$SQLConfig.") method='post'>";
        echo "<div align='center'>";
        echo "<table style='width: 475px'>";
        echo "<thead>";
        echo "<th>";
        echo "<tr>Enter your e-mail and password.</tr>";
        echo "</th>";
        echo "</thead>";
        echo "</table>";
        echo "<input type='submit' value='Login' />";
        echo "</form>";
    }

    function handleLogin($foo, $bar) {
        echo $foo . " || " . $bar;
    }
?>

但是,当我单击提交按钮时,它只是将我带到这里...

http://localhost/handleLogin%28test,test2%29%20method=

现在,我读到了有关使用 Javascript 来执行此操作以及执行类似操作的内容

<script>
    function processLoginRequest($SQLConnection, $SQLConfig) {
        alert("<?php handleLogin($SQLConnection, $SQLConfig) ?>");
    }
</script>

然后我可以使用

echo "<form action='processLoginRequest(".$SQLConnection.",".$SQLConfig.") method='post'>";

但是,该代码会导致整个 php 脚本终止。 (没有错误?)

最佳答案

您错误地使用了 action,但结果符合预期。 action 存储表单将提交到的页面。所以,是的,当您点击提交时,它会尝试将您带到名为 handleLogin%28test,test2%29%20method= 的页面,因为这就是您的操作所说的要做的事情。

您可以做的就是将操作留空,这会将表单提交到当前页面。然后,在该页面上检查表单是否已提交,如果是,则调用您的函数。

在创建表单的函数内进行以下更改:

function createLogin() { 
    ...
    echo "<form action='' method='post'>";
    ....
    echo "<input type='submit' value='Login' name='login'/>";
}

然后,在呈现表单的页面顶部添加如下内容:

// Check if login form has been submitted - if so, handle
if (isset($_POST['login'])) {
    handleLogin($SQLConnection, $SQLConfig);
}

// Render login form. No need to pass config parameters here.
createLogin();

如果你真的想将所有内容都保留在一个函数中,我想你也可以这样做:

function createLogin($SQLConnection, $SQLConfig) { 
    if (isset($_POST['login'])) {
        handleLogin($SQLConnection, $SQLConfig);
    }
    else {
        echo "<h1> You are currently not logged in!</h1>";
        echo "<form action='' method='post'>";
        echo "<div align='center'>";
        echo "<table style='width: 475px'>";
        echo "<thead>";
        echo "<th>";
        echo "<tr>Enter your e-mail and password.</tr>";
        echo "</th>";
        echo "</thead>";
        echo "</table>";
        echo "<input type='submit' value='Login' name='login'/>";
        echo "</form>";
    }
}

关于javascript - 通过 HTML 按钮传递 PHP 函数(带参数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23925921/

相关文章:

ajax - jQuery 和 Ajax : ReferenceError: ajax is not defined

javascript - 将属性值从一个属性复制到另一个属性中的内部字符串

javascript - AngularJS - 函数未定义

php - 我想根据连接的列对数据进行排序

javascript - 如何使用 JSF 和 Javascript 在下拉选择时动态更新 Google 区域图表数据

PHP - 显示数据库数据的登录表单

javascript - 表单提交后,将数据插入 Mysql 并将用户重定向到 url mydomain.com/entries/last_inserted_id

javascript - JQuery 从 td 单元格中删除按钮?

javascript - 使用react-icons一次导入多个图标

javascript - iOS Web 应用程序 - 仅在添加到主屏幕时显示内容?