【问题标题】:PHP & HTML - Getting user input and going to another page [closed]PHP和HTML - 获取用户输入并转到另一个页面[关闭]
【发布时间】:2017-03-14 01:21:26
【问题描述】:

注意:可能重复的问题没有帮助,因为它不能补偿不同页面的多个选项,同时还传递表单信息。

我需要从当前页面获取用户输入(目前,这只是一个文本字段),并且有三个按钮。这三个按钮应该分别转到不同的页面,但是这三个按钮都需要文本字段中的值来完成它们的工作。

基本上,我需要将文本字段中的值“传递”到按钮应该重定向到的三个页面中的任何一个。目前,按钮无法重定向,因为我不知道该怎么做。

这是我目前的代码:

<html>
<body>

<form name="form" action="" method="post">
Name: <input type="text" name="name" value="<?php echo $name;?>">
</form>
<button type="button">button1</button>
<button type="button">button2</button>
<button type="button">button3</button>

</body>
</html>

请不要使用 JavaScript。

【问题讨论】:

  • 您想要的是检查 POST 请求并在发布成功时处理重定向。我相信有人会很友好地给你一个链接并将其标记为重复。
  • 恐怕你在改写这个问题。我在问如何重定向或检索输入。
  • ^ 没有。此问题未考虑处理用户输入。
  • @moosefoot 要么使用 JavaScript 根据单击的按钮重新连接表单,要么从单个 PHP 入口点识别按下的按钮并在 PHP 中传递信息。一旦你决定了你想要的解决方案,应该很容易搜索相关的例子。

标签: php html button input textfield


【解决方案1】:
<?php
if(isset($_POST['button1'])){
    $link='index_1.php?name='.$_POST['name'];
    header('location:'.$link); 
 }elseif(isset($_POST['button2'])){ 
   $link='index_2.php?name='.$_POST['name'];
   header('location:'.$link); 
 } elseif(isset($_POST['button3'])){ 
   $link='index_3.php?name='.$_POST['name']; 
   header('location:'.$link);
 }
?>

<form action="" method="POST">
    Name: <input type="text" name="name" value="">
    <button type="submit" name="button1" value="button1">button1</button>
    <button type="submit" name="button2" value="button2">button2</button>
    <button type="submit" name="button3" value="button3">button3</button>
</form>

【讨论】:

  • 此解决方案不起作用,因为一旦我被重定向,我就无法访问输入到输入中的值。不过,重定向效果很好。
  • 用此代码更改之前的 php 代码,您可以在重定向页面中从 url 获取值作为 $_GET['name'] if(isset($_POST['button1'])){ $link='index_1.php?name='.$_POST['name']; header('位置:'.$link); } elseif(isset($_POST['button2'])){ $link='index_2.php?name='.$_POST['name']; header('位置:'.$link); } elseif(isset($_POST['button3'])){ $link='index_3.php?name='.$_POST['name']; header('位置:'.$link); }
  • 该代码非常难以阅读,因为它没有被格式化,但它工作得很好!谢谢。
  • 不客气 :) 很抱歉格式不好,我将在主要答案中对其进行编辑 :)
【解决方案2】:

表单指向的页面在formtag 的action 属性中定义。只需将文件路径 + 文件名写入该属性,提交后,您将被重定向到该页面并可以在那里使用 POST 参数值。

但您需要添加一个submit 按钮 - 一个,而不是三个,并作为input 标记

【讨论】:

  • 我如何确保仅当用户按下三个按钮之一时才完成提交?参数在哪里以及如何传递?
  • 另外,这三个按钮是必需的,所以我知道用户想要做什么,并将它们重定向到适当的页面。通过使用单个按钮,我无法确定用户希望访问的页面
  • 您可以使用选择菜单或选项列表来代替这三个按钮并添加提交按钮。一个表单中只能有一个提交按钮。看看这里:w3schools.com/tags/att_form_method.asp
  • 提供的示例只能重定向到单个页面(在本例中为action_page.php)。这不适用于我的情况,除非我为每个选项使用三个单独的表格。那太荒谬了。
  • 它可以重定向到一个未显示的 .php 页面/脚本,但根据发送的 POST 参数可以自动重定向到所需的页面(很快 - 没有人会注意到其中还有另一个脚本之间)。
【解决方案3】:

使用提交类型,在PHP文件中检查提交的值(或你想放的名字),如果值为“button1”做某事,如果它是“button2”等等。

<form action="/action_page.php" method="POST">
Name: <input type="text" name="name" value="<?php echo $name;?>">
<button type="submit" name="submited" value="button1">button1</button>
<button type="submit" name="submited" value="button2">button2</button>
<button type="submit" name="submited" value="button3">button3</button>

</form>

【讨论】:

    猜你喜欢
    • 2022-06-27
    • 1970-01-01
    • 2021-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-12
    • 1970-01-01
    相关资源
    最近更新 更多