Php 使用foreach和session在表单中循环
我有一个表单,里面有一个循环。 这是我的密码:Php 使用foreach和session在表单中循环,php,arrays,forms,loops,foreach,Php,Arrays,Forms,Loops,Foreach,我有一个表单,里面有一个循环。 这是我的密码: <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post"> <?php for ($i = 1; $i <= 2; $i++) { echo "Numero "; echo $i; echo "<input type='text' name='number2[$i]' id='number2{$i}' /&
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
<?php
for ($i = 1; $i <= 2; $i++) {
echo "Numero ";
echo $i;
echo "<input type='text' name='number2[$i]' id='number2{$i}' />";
}
?>
<input type="submit" name="submitbutton" value="Confirm!">
</form>
<?php
print_r( $_POST );
if(!isset($submitbutton)) {
if (isset($_POST['number2']) != "") {
echo "<b>{$_POST['number2']}</b>, !\n";
$nI = $_POST['number2'];
}
}
?>
您遇到了什么错误?请注意,isset()
仅返回TRUE
或FALSE
,因此isset($\u POST['number2'])
将永远不会等于空字符串。类似的内容应该适用于您:
<?php
// Start a PHP Session
session_start();
?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
<?php
for ($i = 1; $i <= 2; $i++) {
echo "Numero ";
echo $i;
echo "<input type='text' name='number2[$i]' id='number2{$i}' />";
}
?>
<input type="submit" name="submitbutton" value="Confirm!">
</form>
<?php
// If the form was submitted and number2 is an array
if(isset($_POST['submitbutton'])
&& isset($_POST['number2'])
&& is_array($_POST['number2'])) {
// Loop through each posted value and save it to the session
foreach ($_POST['number2'] as $key => $value) {
$_SESSION["number2_{$key}"] = $value;
}
}
echo "number2_1 = " . $_SESSION["number2_1"] . "<br />";
echo "number2_2 = " . $_SESSION["number2_2"] . "<br />";
?>
isset($submitbutton)
应该是isset($\u POST['submitbutton'])
。不您遇到了什么错误?您是否尝试过使用$\u SESSION[1]=3
并在代码开头使用SESSION\u start()
?实际上,在松散比较中,false等于空字符串。所以false!=“
将计算为false。正确,但它将始终计算为false
,因此if
语句将始终计算为TRUE
。它如何始终计算为false?如果设置了该变量,则该变量将是(true!=“”)
,其计算结果为true。如果未设置变量,则该变量将是(false!=“”)
,其计算结果为false。额外的!=不需要“”
,但实际上不会更改条件的结果。这基本上就像做if(isset()!=false)
-不必要,但不会破坏任何东西。啊!你说得对。。。我最近一直在使用Ruby,其中空字符串不被认为是FALSE
。我的错误。如果我这样做,我会收到以下错误通知:未知:跳过第0行未知中的数字键1通知:未知:跳过第0Ah行未知中的数字键2,对,您的$\u会话中不能有数字键。您必须将它们放入一个数组或为它们添加前缀(请注意我的更改)。