1

我正在尝试创建一个文本框,用户可以在其中输入数字,单击按钮并根据用户输入的数字使用 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>
4

4 回答 4

5

这有一个美元符号,不会评估为真:

if (isset($_POST['$textboxdata'])) {

它应该是:

if (isset($_POST['textboxdata'])) {

您可能还需要数据的整数值$_POST,因此请更改:

$textboxdata = $_POST['textboxdata'];

对此:

$textboxdata = intval( $_POST['textboxdata']);

因为请记住,用户可以在该框中输入任何内容,而不仅仅是数字。您可能希望在未来研究更多的输入卫生。

最后,您希望exit()在所有这些header()调用之后(并且Location值应该是完整的 URL,而不是相对的)。您想要这样做的原因exit()是因为您希望脚本在那里停止处理。

header("Location: one.php");
exit();
于 2012-08-16T14:47:30.963 回答
2

好吧,看到你分配$_POST['textboxdata'];$textboxdata我会成功的

$textboxdata = $_POST['textboxdata']; 

if (isset($textboxdata)) { 
    switch ($textboxdata) 

如果$textboxdata 未通过初始分配设置,则不会命中 switch 语句。

于 2012-08-16T14:52:17.660 回答
2

我怀疑这是问题所在:

if (isset($_POST['$textboxdata'])) {

应该:

if (isset($_POST['textboxdata'])) {
于 2012-08-16T14:47:32.117 回答
1

如果您有其他使用 javascript、jQuery 或其他语言进行此类重定向的方法,请告诉我。

jQuery解决方案:

<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>
于 2012-08-16T14:59:39.340 回答