Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用foreach和session在表单中循环_Php_Arrays_Forms_Loops_Foreach - Fatal编程技术网

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会话中不能有数字键。您必须将它们放入一个数组或为它们添加前缀(请注意我的更改)。