HTML表单未使用post / get方法提交输入值

时间:2018-11-25 05:13:25

标签: php html forms post methods

这是我的html表单的一部分:

<form method ="post" action="switch.php">
    <p class="option">Favorite Book: <input type = "text" name = "book" id="book" size = "25" /> </p>
    <input class="submit" type="submit" name="submit" value="SUBMIT" />
</form>

这是我的php代码的一部分:

if(isset($_POST['book'])){
    $person1book=$_POST['book'];
    $person2book=$_POST['book'];
}else{
    $person1book="Pride and Prejudice";
    $person2book="Crime and Punishment";
}

我基本上有一种形式,如果输入不为空,则需要更改变量的值。

我尝试过:

  • 没有运气的get方法
  • $ _ REQUEST没有运气

它看起来好像输入表单没有提交任何东西。

如果您发现我缺少的任何内容,我将非常感谢您的帮助!

*编辑并附带更多说明:

在一页上,我有一个表格,用户可以选择一个人并填写自己喜欢的书。然后我将其发布到switch.php中,如果填写了表单输入,则变量会更改。 Switch.php还将页面重定向到另一个页面,该页面取决于用户选择显示自己喜欢的书的人。每个人都有一本默认的收藏夹书,但是如果用户填写该表可以更改,除非我每次填写该表时,它始终显示默认值。

2 个答案:

答案 0 :(得分:0)

这里一切都很好

<form method="POST" action="switch.php">
    <p class="option">Favorite Book: <input type = "text" name="book" id="book" size="25" /> </p>
    <input class="submit" type="submit" name="submit" value="SUBMIT" />
</form>

如果您在同一页面上发帖,请删除操作

if(empty($_POST['book'])) {
    $person1book = "Pride and Prejudice";
    $person2book = "Crime and Punishment";
}else{
    $person1book = $_POST['book'];
    $person2book = $_POST['book'];
}

答案 1 :(得分:0)

为什么我的空提交不被替换?

如果值为空,则第一个条件(isset)仍为 true 。为防止这种情况,我将!empty($variable)的条件添加到isset($_POST['book'])中,以便空值不会在此处停止。


我该如何解决?

if(isset($_POST['book']) && !empty($_POST['book'])){
    $person1book=$_POST['book'];
    $person2book=$_POST['book'];
}else{
    $person1book="Pride and Prejudice";
    $person2book="Crime and Punishment";
}

它们也应该被重定向。我们该怎么做?

从逻辑上讲,有许多方法可以执行此操作,但是您可以使用option元素让用户从html页面中选择他们的人。您可以使用PHP的sessions在整个站点范围内进行存储。

您可以从W3's PHP5 guide阅读有关PHP会话的更多信息。

PHP可以使用header()重定向用户。在这种情况下,我们根据个人使用了header('Location: /1')header('Location: /2')

您可以在PHP manual上了解有关PHP标头的更多信息。

index.html

<form method ="post" action="switch.php">
    <p class="option">Favorite Book: <input type = "text" name = "book" id="book" size = "25"/></p>
    <select name="person" required>
        <option value="1">Select a person</option><!--Defaults to one if not specified.-->
        <option value="1">Person1</option>
        <option value="2">Person2</option>
    </select>
    <br/><br/>
    <input class="submit" type="submit" name="submit" value="SUBMIT" />
</form>

switch.php

<?php session_start();

if(isset($_POST['book']) && !empty($_POST['book'])){
    $person1book=$_POST['book'];
    $person2book=$_POST['book'];
}else{
    $person1book="Pride and Prejudice";
    $person2book="Crime and Punishment";
}

if ($_POST['person'] == 1) {
    $_SESSION['person'] = $person1book;
    header('Location: /1');
} else if($_POST['person'] == 2) {
    $_SESSION['person'] = $person2book;
    header('Location: /2');
}
?>

/1/index.php

<?php session_start();

echo "<b>Person1</b> page with book: <b>" .$_SESSION['person']. "</b>.";
echo "<br/><hr/><b>Output:</b></br>" .$_SESSION['new'];


?>

/2/index.php

<?php session_start();

echo "<b>Person2</b> page with book: <b>" .$_SESSION['person']. "</b>.<br/>";
echo "<br/><hr/><b>Output:</b></br>" .$_SESSION['new'];


?>

解决方案

Solution


初始答案:

---

Before
===
[![Before Solution (broken)][1]][1]

---

After
===
[![After Solution (fixed)][2]][2]
    
---
  [1]: https://i.stack.imgur.com/h6NQS.gif
  [2]: https://i.stack.imgur.com/pGjEv.gif