我正在尝试创建一个文本框,用户可以在其中输入数字,单击按钮并根据用户输入的数字使用PHP重定向到另一个网页。我不确定为什么这不起作用。您可以将以下代码保存在 PHP 文件中。如果您有任何想法,请告诉我。如果您有另一种使用javascript,jQuery或其他语言进行此类重定向的方法,请告诉我。多谢。有好的一天。五.
<?php
$textboxdata = $_POST['textboxdata'];
if (isset($_POST['$textboxdata'])) {
switch ($textboxdata)
{
case 1:
header("Location: one.php");
break;
case 2:
header("Location: two.php");
break;
case 5:
header("Location: five.php");
break;
default:
echo "Enter a number please.";
}
}
?>
</head>
<body>
<FORM NAME ="form" METHOD ="post" ACTION = "">
<INPUT TYPE = "TEXT" VALUE ="username" METHOD ="post" name="textboxdata" >
<INPUT TYPE = "Submit" Name = "submit" VALUE = "Login">
</FORM>
</body>
</html>
这里面有一个美元符号,不会计算为 true:
if (isset($_POST['$textboxdata'])) {
它应该是:
if (isset($_POST['textboxdata'])) {
您可能还需要$_POST
数据的整数值,因此请更改以下内容:
$textboxdata = $_POST['textboxdata'];
对此:
$textboxdata = intval( $_POST['textboxdata']);
因为请记住,用户可以在该框中键入任何内容,而不仅仅是数字。您可能希望在未来研究更多的投入卫生。
最后,您希望在所有这些header()
调用之后exit()
(Location
值应该是完整的 URL,而不是相对 URL)。您要exit()
的原因是您希望脚本停止处理。
header("Location: one.php");
exit();
我怀疑这是问题所在:
if (isset($_POST['$textboxdata'])) {
应该是:
if (isset($_POST['textboxdata'])) {
好吧,看到您将$_POST['textboxdata'];
分配给$textboxdata
我会做到
$textboxdata = $_POST['textboxdata'];
if (isset($textboxdata)) {
switch ($textboxdata)
如果未通过初始赋值设置$textboxdata
则不会命中 switch 语句。
如果你有另一种使用javascript,jQuery进行这种重定向的方法, 或其他语言,请告诉我。
j查询解决方案:
<input type="text" value="username" id="inpt" />
<input type="button" value="login" id="btn" />
<script type="text/javascript">
$(function() {
$("#btn").on('click', function() {
var value = $("#inpt").val();
if (value.length) {
switch (parseInt(value, 10)) {
case 1:
document.location.href = "one.php";
break;
case 2:
document.location.href = "two.php";
break;
case 5:
document.location.href = "five.php";
break;
default:
alert("Enter a number please.");
}
}
});
});
</script>