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