php新手在这里。单击“提交”按钮时如何保留数组的值?那么这个程序是如何运作的。用户将输入名称和座位号(1-25之间),当用户单击“提交”按钮时,该名称将添加到阵列上并显示在表格中。它适用于第一个输入,但当我输入另一个名称和座位号时,第一个输入被删除。请帮忙。
//this is where the user will input...
Student Name: <input type="text" name="name" id="name"><br>
Seat Number: <input type="text" name="seat" id="seat"><br>
<input type="submit" name="assign" value="Assign"> <?php echo $warning; ?>
//and this is my php code.
<?php
$students = array_fill(0, 25, NULL);//this is to make an empty array with the size of 25.
if(isset($_POST['assign'])){
$student = $_POST['name'];
$seat = $_POST['seat'];
if($seat > 25 || $seat < 1){
$warning = 'Seat number does not exist.';
}
else{
$warning = '';
$students[$seat-1] = $student;
}
}
?>
//This code here is just a part of the HTML code for the table. this is where the name will display.
<td id="box"><?php echo $students[0]; ?></td>
<td id="box"><?php echo $students[1]; ?></td>
<td id="box"><?php echo $students[2]; ?></td>
<td id="box"><?php echo $students[3]; ?></td>
<td id="box"><?php echo $students[4]; ?></td>
答案 0 :(得分:0)
因为每次单击“提交”按钮时,$ students数组都会一次又一次地创建,因此您将丢失$ students所持有的先前值。因此,在第一次提交表单时,只创建一次数组。登记/>
编辑:替代方案:使用php SESSION(只是众多替代方案中的一个)
在PHP会话中存储用户信息之前,必须先启动会话。
<?php session_start(); ?>
<html>
<body>
</body>
</html>
然后你可以通过在php.So中操作$ _SESSION数组来存储或检索会话中的任何内容,而不是将座位号存储在普通的php变量中,你可以使用$ _SESSION.Just保持一切相同(即方法= “post”等等)而不是$学生使用$ _SESSION [“学生],其中学生将成为$ _SESSION中的数组(并且它将保留在那里直到你的会话到期,即直到用户注销或关闭你的页面案例)
有关更多示例,请参阅此处:http://www.w3schools.com/php/php_sessions.asp
答案 1 :(得分:0)
使用这样的会话:
<?php
session_start(); // To start the session, must be called before trying to manipulate any session variables. Preferably the first php-line on each page who will use sessions.
$_SESSION['students'] = array_fill(0, 25, NULL); // Sets an array of 25 indexes to session variable 'students'
?>
每次用户点击提交时都不应调用上面的代码块 - 只应调用一次。
<?php
session_start();
if(isset($_POST['assign'])){
$student = $_POST['name'];
$seat = $_POST['seat'];
if($seat > 25 || $seat < 1){
$warning = 'Seat number does not exist.';
}
else{
$warning = '';
$_SESSION['students'][$seat-1] = $student; // Sets index [$seat-1] of array to $student
}
}
?>
会话变量临时存储在服务器上,只要您记得在每个页面上启动会话,就可以访问整个网站(如代码所示)。
正如Anmol之前所说,请在此处详细了解会话:http://www.w3schools.com/php/php_sessions.asp
修改强>
<?php
session_start(); // To start the session, must be called before trying to manipulate any session variables. Preferably the first php-line on each page who will use sessions.
if(!isset($_SESSION['students'])){
$_SESSION['students'] = array_fill(0, 25, NULL); // Sets an array of 25 indexes to session variable 'students'
}
?>