php表单数据访问和停留在页面上

时间:2016-07-14 14:26:07

标签: php html forms

我是php和html的新手,因为我完全用C ++和C编写了更多。我有一个网络表单,其中列出了人们从中选择日期和时间的预定日期。它是一个收音机盒。人们可以在一周内从一系列时间表中进行选择。因此,大约有50个时段可供选择,超过5天。

代码是这样的(在文件中说generatelots.php):

<form name = "input" action = "execute_databaseupdate.php" method = "post">

<? php

    <tr>
     <td><?php echo $today ?></td>
     <td><?php echo $weekday ?></td>
     <td><?php echo $slottime.'-'.$endtime; ?></td>
     <td><input type="checkbox" name="check_list[]" value="<?php echo $id; ?>"></td>
                                <td><?php echo $SumId; ?></td>
    </tr>
    ?>



<input type="submit" name = "submit" id = "sub" value="Submit" >

我要做的是提交时确保至少选择了一定数量的广告位。如果未选择一定数量的计划,则提醒用户然后保持在页面上。为此,我需要访问所有选定的插槽。我可以访问execute_databaseupdate.php文件中的所有发布数据,并且我使用$ _POST超全局使用类似的东西:

foreach($_POST['check_list'] as $check){
echo $check;
}

如何访问同一文件generatelots.php中的数据,如果满足条件,则执行否则会弹出警告消息,然后在SAME页面上保持。

我尝试了以下内容:

<form name = "input" action = "execute_databaseupdate.php" method = "post" onSubmit = "return CheckData();">

在checkData函数中,我访问了上面的数据,但是超全局帖子是空的。我想访问提交时检查的元素,我相信我必须使用check_list数组。

empty($_POST['check_list'])

返回true。我想我无法弄清楚的是点击提交之后,如何访问generatelots.php文件本身提交的数据并警告用户并进一步保持他检查的选项处于活动状态。

-Thanks,

1 个答案:

答案 0 :(得分:1)

要访问POST中的generateslots.php数据,表单需要将发送到 generateslots.php

<form name = "input" action = "generateslots.php" method = "post">

处理该表单提交的代码将被移动到该页面,通常包含在您所拥有的内容中:

if (isset($_POST['check_list'])) {
    // process the form post 
}
// show the form

当&#34;处理表单帖子&#34;时,如果一切都成功,您可以将用户重定向到另一个页面,并基本上取消此页面上的其余代码。

当&#34;显示表单&#34;时,如果数据存在,您可以根据POST中的数据预先选择表单元素和其他内容。

我主要猜测你当前正在做的事情的性质,因为这个问题对于必要的细节有点明确。 (例如,CheckData()是什么。)但这听起来像是新的Web开发人员面临的一个非常普遍的问题。特别是那些来自非网络背景的人。

但基本上,您当前正在做什么听起来像是在尝试访问POST 上的generateslots.php数据时首先被渲染,这是之前任何东西都被发布。像这样的操作顺序:

  • 用户请求generateslots.php
  • 服务器查找表单POST数据,找不到
  • 服务器返回表单
  • 用户将表​​单提交至execute_databaseupdate.php

相反,您可能会这样做:

  • 用户请求generateslots.php
  • 服务器看到没有发布表单,显示新的空表单
  • 用户将表​​单提交至generateslots.php
  • 服务器看到表单已发布,处理表单
  • 如果成功,服务器会将重定向返回到下一页
  • 否则,服务器返回表单(到目前为止已知数据)

当然,还有其他方法可以做到这一点。它通常归结为代码维护,API纯度和个人偏好之间的平衡。这些都是您在需求出现时能够及时发现的所有内容。但最重要的是,您在提交表单的过程中处理表单提交。