首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP -使用输入表单中的值填充多维关联数组

问PHP -使用输入表单中的值填充多维关联数组
EN

Stack Overflow用户
提问于 2018-02-10 18:56:44
回答 1查看 318关注 0票数 0

如前所述,我试图从html输入表单中填充一个数组,但我有点困惑

答:我认为我正确地声明了数组,但是我应该在哪里声明它,这样每次提交表单时,都会创建一个新的记录,而不是一个新的数组。我如何正确地引用子数组来填充其他语句下的学生详细信息?

我的代码在下面

代码语言:javascript
复制
<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;

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-10 19:24:49

我怀疑每次表单以您现在正在尝试的方式发送时,您是否能够向$students添加一个新的数据集。问题是:如果您提交表单,将调用一个全新的页面,而来自上一页的数据基本上已经消失。你得设法解决这个问题。

这里有一些选择,从最愚蠢的一个开始。

选项1使用JS。在提交时,调用的不是新页面,而是JS脚本收集数据并将其存储到数组中。需要JS,一旦页面被重新加载,数据就会丢失。

选项2使用服务器端变量,如$SESSION或$SERVER。这些数组可以存储数据。它们不是存在于用户的设备上,而是存在于您的web服务器上。这样,数据就可以保存在多个被调用的网页上。通常,只要您自己删除它或当用户关闭浏览器。每次提交表单时,您都可以为他们创建新的记录。缺点:一旦变量被重置,数据就会消失(但是会发生这种情况)。

选项3(推荐)使用数据库。我不知道您的数组的用途,但通常您希望保存这些信息的时间比浏览器关闭时长。表单提交将数据通过$_POST传递给一个新的PHP,该文件创建到服务器上数据库的连接并填充数据。稍后,当需要时,您可以从这个数据库中以数组的形式获取数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48724443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档