这是我的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";
}
我基本上有一种形式,如果输入不为空,则需要更改变量的值。
我尝试过:
它看起来好像输入表单没有提交任何东西。
如果您发现我缺少的任何内容,我将非常感谢您的帮助!
*编辑并附带更多说明:
在一页上,我有一个表格,用户可以选择一个人并填写自己喜欢的书。然后我将其发布到switch.php中,如果填写了表单输入,则变量会更改。 Switch.php还将页面重定向到另一个页面,该页面取决于用户选择显示自己喜欢的书的人。每个人都有一本默认的收藏夹书,但是如果用户填写该表可以更改,除非我每次填写该表时,它始终显示默认值。
答案 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'];
?>
初始答案:
---
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