如前所述,我试图从html输入表单中填充一个数组,但我有点困惑
答:我认为我正确地声明了数组,但是我应该在哪里声明它,这样每次提交表单时,都会创建一个新的记录,而不是一个新的数组。我如何正确地引用子数组来填充其他语句下的学生详细信息?
我的代码在下面
<body>
<?php
//Create variables from user input
$name=$_POST['name'];
$id=$_POST['id'];
$address=$_POST['address'];
$major=$_POST['major'];
$email=$_POST['email'];
$phone=$_POST['phone'];
//Create associative array
$students = array('name'=> array(''),
'id' => array(''),
'address' => array(''),
'major' => array(''),
'email' => array(''),
'phone' => array('')
);
//Error checking
if(!$name || !$id || !$address || !$major || !$email || !$phone){
echo '<p align="center">
At least one input entry is missing, <br/>
please go back and try again.
</p>';
echo '<p align="center"><a href="task1.html">Back to Selection</a></p>';
}//end if
else{
//populate students array with values entered
$students['name'] = $name;
$students['id'] = $id;
$students['address'] = $address;
$students['major'] = $major;
$students['email'] = $email;
$students['phone'] = $phone;谢谢
发布于 2018-02-10 19:24:49
我怀疑每次表单以您现在正在尝试的方式发送时,您是否能够向$students添加一个新的数据集。问题是:如果您提交表单,将调用一个全新的页面,而来自上一页的数据基本上已经消失。你得设法解决这个问题。
这里有一些选择,从最愚蠢的一个开始。
选项1使用JS。在提交时,调用的不是新页面,而是JS脚本收集数据并将其存储到数组中。需要JS,一旦页面被重新加载,数据就会丢失。
选项2使用服务器端变量,如$SESSION或$SERVER。这些数组可以存储数据。它们不是存在于用户的设备上,而是存在于您的web服务器上。这样,数据就可以保存在多个被调用的网页上。通常,只要您自己删除它或当用户关闭浏览器。每次提交表单时,您都可以为他们创建新的记录。缺点:一旦变量被重置,数据就会消失(但是会发生这种情况)。
选项3(推荐)使用数据库。我不知道您的数组的用途,但通常您希望保存这些信息的时间比浏览器关闭时长。表单提交将数据通过$_POST传递给一个新的PHP,该文件创建到服务器上数据库的连接并填充数据。稍后,当需要时,您可以从这个数据库中以数组的形式获取数据。
https://stackoverflow.com/questions/48724443
复制相似问题