- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我在提交后无法显示正确的详细信息。我认为我的页面结构不正确目前发生的情况是,如果我单击 Module
提交按钮,则不会显示任何不正确的内容。
下面是假设发生的情况:(该页面分为 3 个部分)
第 1 部分:包含一个模块下拉菜单。用户从下拉菜单中选择选项并提交。每次提交时,它都会更改第 2 部分并隐藏第 3 部分。提交后下拉菜单返回请选择选项。
第 2 部分:包含评估下拉菜单,仅在用户提交第 1 部分后出现。当用户从评估下拉菜单中选择选项并单击提交按钮提交此部分时,下拉菜单菜单返回请选择并出现第 3 部分。每次提交带有不同选项的第 2 部分时,第 3 部分都会发生变化。
第 3 部分:显示第 2 部分的详细信息。仅根据从第 2 部分选择和提交的评估显示和更改。如果用户从第 1 部分提交,则此部分隐藏。
现在我的尝试是将 php 和 phmtl 彼此分开,但正如我所说,他的问题是没有显示任何详细信息。请耐心等待,这里有很多代码,但那是因为我需要展示我的页面的结构。我的问题是我需要做些什么来修复页面结构?
您可以在此处查看应用程序发生的情况:Application
下面是按显示顺序排列的代码:(我尽量限制):
PHP:
<?php
// connect to the database
$moduleactive = 1;
$sql = "SELECT ModuleId, ModuleNo, ModuleName FROM Module WHERE ModuleActive = ? ORDER BY ModuleNo";
//excute query
$sqlnum = $sqlstmt->num_rows();
$moduleHTML = "";
$moduleHTML .= '<select name="modules" id="modulesDrop">' . PHP_EOL;
$moduleHTML .= '<option value="">Please Select</option>' . PHP_EOL;
while ($sqlstmt->fetch()) {
$moduleHTML .= sprintf('<option value="%1$s_%2$s_%3$s">%1$s - %2$s</option>' . PHP_EOL, $dbModuleNo, $dbModuleName, $dbModuleId);
}
$moduleHTML .= '</select>';
$pHTML = "";
//Module Submit (Part 1 Submitted)
if (isset($_POST['moduleSubmit'])) {
$sessionquery = "
SELECT s.SessionId, SessionName, SessionDate, SessionTime, ModuleId, SessionActive, Complete
FROM Session s
INNER JOIN Session_Complete sc ON sc.SessionId = s.SessionId
WHERE
(ModuleId = ? AND SessionActive = ? AND Complete = ?)
ORDER BY SessionName
";
$active = 1;
$complete = 1;
//execute query
$sessionnum = $sessionqrystmt->num_rows();
$sessionHTML = '';
if ($sessionnum == 0) {
$pHTML = "<span style='color: red'>Sorry, You have No Assessments under this Module</span>";
}
$sessionHTML = '<select name="session" id="sessionsDrop">' . PHP_EOL;
$sessionHTML .= '<option value="">Please Select</option>' . PHP_EOL;
while ($sessionqrystmt->fetch()) {
$sessionHTML .= sprintf("<option value='%s'>%s - %s - %s</option>", $dbSessionId, $dbSessionName, date("d-m-Y", strtotime($dbSessionDate)), date("H:i", strtotime($dbSessionTime))) . PHP_EOL;
}
$sessionHTML .= '</select>';
}
//Session Submit (Part 2 Submitted)
if (isset($_POST['sessionSubmit'])) {
$sessiondetailsquery = "
SELECT SessionId, SessionName
FROM Session
WHERE
(SessionId = ?)
";
//execute query
$sessiondetailsqrystmt->bind_result($detailsSessionId, $detailsSessionName);
}
?>
PHTML:
<form action="<?php
echo htmlentities($_SERVER['PHP_SELF']);
?>" method="post">
<table>
<tr>
<th>Module: <?php
echo $moduleHTML;
?></th>
</tr>
</table>
<p><input id="moduleSubmit" type="submit" value="Submit Module" name="moduleSubmit" /></p>
<?php
if ($step == 2) {
if (!$_POST['moduleSubmit']) {
if ($_POST['modules'] == '') {
?>
<span style='color: red'>Please Select a Module</span>
<?php
} elseif (!$sqlnum) {
?>
<span style='color: red'>Sorry, You have No Assessments under this Module</span>
<?php
} else {
?>
<p><strong>Assessments:</strong> {$sessionHTML} </p>
<p><input id='sessionSubmit' type='submit' value='View Assessment Details' name='sessionSubmit' /></p>
<?php
}
}
}
?>
<?php
if ($step == 3) {
if (!$_POST['sessionSubmit']) {
if ($_POST['session'] == '') {
?>
<span style='color: red'>Please Select an Assessment</span>
<?php
} else {
?>
<table>
<tr>
<td></td>
<td><input type='text' id='currentId' name='Idcurrent' readonly='readonly' value='$detailsSessionId' /></td>
</tr>
<tr>
<td><strong>Assessment:</strong></td>
<td>{$detailsSessionName}</td>
</tr>
</table>
<?php
}
}
}
?>
</form>
</body>
</html>
更新:
Notice: Undefined index: modules in ...on line 66
Notice: Undefined offset: 1 in ... on line 68
Notice: Undefined offset: 2 in ... on line 69
Notice: Undefined index: modules in ... on line 116
PHP fiddle 已更新:http://phpfiddle.org/main/code/cbx-6mi
最佳答案
我不完全确定您希望结构如何,但据我所知,这就是您问题的答案。
你应该看到结构,希望你能使用它 =)
我们的想法是根据用户提供给我们的信息量显示一个部分。
并且还允许用户返回并更改旧数据。
我已经注释掉了您的一些“代码”,并添加了一些您应该删除的选项。但是这个东西应该会向您展示建议的结构,而无需您被迫输入代码。
<html>
<body>
<form action="" method="post">
<table>
<tr>
<th>
<?php
// connect to the database
//$sql = "SELECT ModuleId, ModuleNo, ModuleName FROM Module WHERE ModuleActive = ? ORDER BY ModuleNo";
//excute query
//$sqlnum = $sqlstmt->num_rows();
?>
Module:
<select name="module" id="modulesDrop">
<option value="">Please Select</option>
<?php
/*
while ($sqlstmt->fetch()) {
echo sprintf('<option value="%1$s_%2$s_%3$s">%1$s - %2$s</option>' . PHP_EOL, $dbModuleNo, $dbModuleName, $dbModuleId);
}
*/
?>
<option value="test">test</option>
</select>
</th>
</tr>
</table>
<input id="moduleSubmit" type="submit" value="Submit Module" name="moduleSubmit" />
</form>
<?php
if(isset($_POST["module"]))
{
?>
<form action="" method="post">
<input type="hidden" name="module" value="$_POST[module]">
Assigments:
<?php
$sessionquery = "SELECT s.SessionId, SessionName, SessionDate, SessionTime, ModuleId, SessionActive, Complete
FROM Session s
INNER JOIN Session_Complete sc ON sc.SessionId = s.SessionId
WHERE
(ModuleId = ? AND SessionActive = ? AND Complete = ?)
ORDER BY SessionName";
//execute query
//$sessionnum = $sessionqrystmt->num_rows();
if ($sessionnum == 0 && false) // "&& false" should ofcourse be removed
{
?>
<span style='color: red'>Sorry, You have No Assessments under this Module</span>
<?php
}
else
{
?>
<select name="session" id="sessionsDrop">
<option value="">Please Select</option>
<?php
/*
while ($sessionqrystmt->fetch()) {
$sessionHTML .= sprintf("<option value='%s'>%s - %s - %s</option>", $dbSessionId, $dbSessionName, date("d-m-Y", strtotime($dbSessionDate)), date("H:i", strtotime($dbSessionTime))) . PHP_EOL;
}
*/
echo "<option value='tst'>tst</option>";
?>
</select>
<br>
<input type="submit" value="Submit Assigments">
</form>
<br>
<br>
<?php
if(isset($_POST["session"]))
{
?>
<table>
<tr>
<td></td>
<td><input type='text' id='currentId' name='Idcurrent' readonly='readonly' value='$detailsSessionId' /></td>
</tr>
<tr>
<td><strong>Assessment:</strong></td>
<td>{$detailsSessionName}</td>
</tr>
</table>
<?php
}
}
}
?>
</body>
</html>
如果你只想一次显示一个“步骤”,就用“else if”而不是“if”(当然需要多一点,但你应该从中明白怎么做? )
关于html - 如何正确设置页面结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12760373/
我目前正在尝试基于哈希表构建字典。逻辑是:有一个名为 HashTable 的结构,其中包含以下内容: HashFunc HashFunc; PrintFunc PrintEntry; CompareF
如果我有一个指向结构/对象的指针,并且该结构/对象包含另外两个指向其他对象的指针,并且我想删除“包含这两个指针的对象而不破坏它所持有的指针”——我该怎么做这样做吗? 指向对象 A 的指针(包含指向对象
像这样的代码 package main import "fmt" type Hello struct { ID int Raw string } type World []*Hell
我有一个采用以下格式的 CSV: Module, Topic, Sub-topic 它需要能够导入到具有以下格式的 MySQL 数据库中: CREATE TABLE `modules` ( `id
通常我使用类似的东西 copy((uint8_t*)&POD, (uint8_t*)(&POD + 1 ), back_inserter(rawData)); copy((uint8_t*)&PODV
错误 : 联合只能在具有兼容列类型的表上执行。 结构(层:字符串,skyward_number:字符串,skyward_points:字符串)<> 结构(skyward_number:字符串,层:字符
我有一个指向结构的指针数组,我正在尝试使用它们进行 while 循环。我对如何准确初始化它并不完全有信心,但我一直这样做: Entry *newEntry = malloc(sizeof(Entry)
我正在学习 C,我的问题可能很愚蠢,但我很困惑。在这样的函数中: int afunction(somevariables) { if (someconditions)
我现在正在做一项编程作业,我并没有真正完全掌握链接,因为我们还没有涉及它。但是我觉得我需要它来做我想做的事情,因为数组还不够 我创建了一个结构,如下 struct node { float coef;
给定以下代码片段: #include #include #define MAX_SIZE 15 typedef struct{ int touchdowns; int intercepti
struct contact list[3]; int checknullarray() { for(int x=0;x<10;x++) { if(strlen(con
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: Empty “for” loop in Facebook ajax what does AJAX call
我刚刚在反射器中浏览了一个文件,并在结构构造函数中看到了这个: this = new Binder.SyntaxNodeOrToken(); 我以前从未见过该术语。有人能解释一下这个赋值在 C# 中的
我经常使用字符串常量,例如: DICT_KEY1 = 'DICT_KEY1' DICT_KEY2 = 'DICT_KEY2' ... 很多时候我不介意实际的文字是什么,只要它们是独一无二的并且对人类读
我是 C 的新手,我不明白为什么下面的代码不起作用: typedef struct{ uint8_t a; uint8_t* b; } test_struct; test_struct
您能否制作一个行为类似于内置类之一的结构,您可以在其中直接分配值而无需调用属性? 前任: RoundedDouble count; count = 5; 而不是使用 RoundedDouble cou
这是我的代码: #include typedef struct { const char *description; float value; int age; } swag
在创建嵌套列表时,我认为 R 具有对列表元素有用的命名结构。我有一个列表列表,并希望应用包含在任何列表中的每个向量的函数。 lapply这样做但随后剥离了列表的命名结构。我该怎么办 lapply嵌套列
我正在做一个用于学习目的的个人组织者,我从来没有使用过 XML,所以我不确定我的解决方案是否是最好的。这是我附带的 XML 文件的基本结构:
我是新来的 nosql概念,所以当我开始学习时 PouchDB ,我找到了这个转换表。我的困惑是,如何PouchDB如果可以说我有多个表,是否意味着我需要创建多个数据库?因为根据我在 pouchdb
我是一名优秀的程序员,十分优秀!