- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
首先,感谢所有花时间阅读这个问题的人。我以前从未使用过这项服务,因此期待您能给我任何支持。
我目前正在尝试创建一个表单来处理单个导师的可用性。当前表单的示例图像如下所示: Current Form
上面的表单位于插件目录中。这样做的全部目的是能够在网站上显示当前的可用性,但可以通过管理面板进行更新。我的前端表格示例如下所示:Front-end Table
我的问题是,我无法获取将值提交到数据库的表单。我可能做错了,需要有人指导我。
我当前的插件:
/* DESCRIPTION: ADDS PGB TIMESLOTS LINK TO ADMIN DASHBOARD MENU */
add_action('admin_menu', 'pgb_timeslots');
function pgb_timeslots() {
$page_title = 'PGB Timeslot Management';
$menu_title = 'PGB Timeslots';
$capability = 'edit_posts';
$menu_slug = 'pgb_timeslots';
$function = 'pgb_timeslot_options';
$icon_url = '';
$position = 2;
add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position );
}
function pgb_timeslot_options() {
include('sp-db-connect.php'); //Student Portal DB Connection
if (isset($_POST['Update'])) {
$size = count($_POST['ID']);
$i = 0;
while ($i < $size) {
$mon = $_POST['1'][$i];
$tues = $_POST['2'][$i];
$wed = $_POST['3'][$i];
$thurs = $_POST['4'][$i];
$fri = $_POST['5'][$i];
$sat = $_POST['6'][$i];
$sun = $_POST['7'][$i];
$id = $_POST['ID'][$i];
$timetable_update_stmt = $db->prepare('
UPDATE
timetable
SET
`1` = '.$mon.',
`2` = '.$tues.',
`3` = '.$wed.',
`4` = '.$thurs.',
`5` = '.$fri.',
`6` = '.$sat.',
`7` = '.$sun.'
WHERE
timeid = '.$id.'
LIMIT
1
');
$timetable_update_stmt->execute();
++$i;
}
// NEED TO SET NOTIFICATION STATUS
echo '<p>Update Completed</p>';
}
echo '<style>
/* --- The Table Structure --- */
table {
border-collapse: separate;
border-spacing: 0;
}
table tr th,
table tr td {
border-right: 1px solid #bbb;
border-bottom: 1px solid #bbb;
box-shadow: 2px 2px 1px #e5dfcc;
}
table tr th:first-child,
table tr td:first-child {
border-left: 1px solid #bbb;
}
table tr th {
border-top: 1px solid #bbb;
}
/* top-left border-radius */
table tr:first-child th:first-child {
border-top-left-radius: 6px;
}
/* top-right border-radius */
table tr:first-child th:last-child {
border-top-right-radius: 6px;
}
/* bottom-left border-radius */
table tr:last-child td:first-child {
border-bottom-left-radius: 6px;
}
/* bottom-right border-radius */
table tr:last-child td:last-child {
border-bottom-right-radius: 6px;
}
/* -- The Stlyes -- */
input[type="text"] {
width: 100%;
}
th, td{
padding: 8px 8px;
}
th{
background: #E5E6EB;
color: #111;
}
td{
background: #EFF1F6;
}
</style>';
echo '<h1>PGB Timeslot Management</h1>
<p>This page allows you to update the available timeslots for PGB. If you enter 0, it means not available, 1 means available weekly, and 2 means available fortnightly.</p>
<section class="timeslots">
<form name="timeslots" method="POST">
<table>
<tbody>
<tr>
<th>Slots</th>
<th>Mon</th>
<th>Tue</th>
<th>Wed</th>
<th>Thu</th>
<th>Fri</th>
<th>Sat</th>
<th>Sun</th>
</tr>';
$count = 1;
$sql = 'SELECT * FROM timetable';
$result = mysqli_query($sp_db, $sql) or die($sp_db->error);
while ($row = mysqli_fetch_assoc($result)) {
echo '<tr>';
$halftime = "";
if (strpos($row['timeid'], 'h') !== false) {
$halftime = "1";
$chopme = chop($row['timeid'],"h");
$nextslot = $chopme+1;
} else {
$halftime = "0";
$chopme = $row['timeid'];
$nextslot = $row['timeid']+1;
}
if ( $halftime == "0" ) {
//starts on the hour
echo "<td>".$chopme.":00 - ".$chopme.":30</td>";
} else {
//starts on the half hour
echo "<td>".$chopme.":30 - ".$nextslot.":00</td>";
}
echo '<input type="hidden" name="ID[]" value="'.$row['timeid'].'">';
for ($i = 1; $i <= 7; $i++) {
// 1 through 7 = Mon through Sun
echo '<td><input type="text" name="'.$i.'[]" id="'.$row['timeid'].'" value="'.$row[$i].'"></td>';
}
echo '</tr>';
$count++;
}
echo '</tbody>
</table>
<input type="submit" name ="Update" value="Update" />
<p>Once you have changed the values for availability above, click the update button.</p>
</form>
</section>
</div>
</div>';
}
上面的代码不会向数据库提交任何内容,并显示一个空屏幕,就好像没有可显示的管理内容一样。单击提交按钮后,不会重新加载表单或将数据保存到数据库。当从前端表的数据库中提取值时,我根据所显示的值转换输出。 0 = 完整,1 = 每周,2 = 每两周等等。
我在这里完全错过了什么吗?
编辑:
我想我会提供当前的表结构,以便您可以看到我当前正在处理的内容:
CREATE TABLE `timetable` (
`ID` int(11) NOT NULL COMMENT 'Primary ID',
`timeid` varchar(4) NOT NULL COMMENT 'Time-Slot',
`1` int(1) NOT NULL COMMENT 'Monday',
`2` int(1) NOT NULL COMMENT 'Tuesday',
`3` int(1) NOT NULL COMMENT 'Wednesday',
`4` int(1) NOT NULL COMMENT 'Thursday',
`5` int(1) NOT NULL COMMENT 'Friday',
`6` int(1) NOT NULL COMMENT 'Saturday',
`7` int(1) NOT NULL COMMENT 'Sunday'
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
“timeid”由 7、7h、8、8h、9、9h 等组成。“h”让我知道时段从半小时标记开始。然后,我使用下面的代码将它们转换为前端可读的时间格式:
<table>
<tbody>
<tr>
<th>Slots</th>
<th>Mon</th>
<th>Tue</th>
<th>Wed</th>
<th>Thu</th>
<th>Fri</th>
</tr>
<?php
include('sp-db-connect.php'); // DB Connection
$count = 1;
$sql = 'SELECT * FROM timetable';
$result = mysqli_query($sp_db, $sql) or die($sp_db->error);
while ($row = mysqli_fetch_assoc($result)) {
echo '<tr>';
$halftime = "";
if (strpos($row['timeid'], 'h') !== false) {
$halftime = "1";
$chopme = chop($row['timeid'],"h");
$nextslot = $chopme+1;
} else {
$halftime = "0";
$chopme = $row['timeid'];
$nextslot = $row['timeid']+1;
}
if ( $halftime == "0" ) {
//starts on the hour
echo "<td>".$chopme.":00 - ".$chopme.":30</td>";
} else {
//starts on the half hour
echo "<td>".$chopme.":30 - ".$nextslot.":00</td>";
}
for ($i = 1; $i <= 5; $i++) {
// 1 through 5 = Mon through Fri
if ($row[$i] == '0' ) {
$row[$i] = 'Full';
} elseif ($row[$i] == '1' ) {
$row[$i] = '<a href="booking-confirmation/?d='.$i.'&t='.$row['timeid'].'&f=1" title="Book Now" rel="nofollow">Weekly</a>';
} else {
$row[$i] = '<a href="booking-confirmation/?d='.$i.'&t='.$row['timeid'].'&f=2" title="Book Now" rel="nofollow">Every 2 weeks</a>';
}
}
for ($i = 1; $i <= 5; $i++) {
// 1 through 5 = Mon through Fri
echo "<td>".$row[$i]."</td>";
}
echo '</tr>';
$count++;
}
?>
</tbody>
</table>
我不想创建一个功能齐全的计划器/时间表。我需要在前端显示时间段,然后指示它们是否可用。我理解您关于格式化的逻辑,并且只需要将不可用的数据存储在数据库中。我不太确定如何使用“booking_start”和“booking_end”变量来获取该数据。
用户将点击一个时间段,该时间段将重定向到预订表格。该时间段将传递到新页面供他们确认。时隙不变。我不需要获得具体的日期等。我所需要的只是每周设定的时间段以及它们是否可用。如果有人在特定的一天占用了一个时间段,那么我只需要能够将其标记为已满即可。原因是,如果有人确实在某一天占用了该位置,那么他们将一直拥有该位置。
这基本上是音乐补习时段。学生们会预订一个时段,并且每周都有相同的时段。当新生想要查看我的空闲时间时,他们只需要知道我有哪些空位等以及哪些空位已满。
最佳答案
不是答案,但想利用格式选项...
好吧,我们知道周一至周五、7.00 - 23.00 的所有时段都存在,因此我们不需要存储这些时段。我们只需要存储那些不可用的。所以我们的表可能如下所示:
( user_id INT NOT NULL
, booking_start DATETIME NOT NULL
, booking_end DATETIME NOT NULL
, PRIMARY KEY (user_id,booking_start)
)
这是否是最终的设计取决于您,但它至少是标准化的,而您目前的设计还没有标准化。
关于php - Wordpress:从插件内将表单提交到不同的数据库和表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45177582/
我在互联网上搜索了很多小时,但没有找到满意的结果,所以 -VSTO Addin 和 COM Addin(我们作为类库项目制作并使用 Excel 对象)之间有什么区别?VSTO 项目是否有任何限制,例如
我在互联网上搜索了很多小时,但没有找到满意的结果,所以 -VSTO Addin 和 COM Addin(我们作为类库项目制作并使用 Excel 对象)之间有什么区别?VSTO 项目是否有任何限制,例如
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,
我正在寻找有关如何构建可扩展 WCF 服务器(具有动态加载的服务)的建议,最好使用 System.Addins 或 MEF。 服务器应托管实现最小“插件”API(StartService/StopSe
有没有一种方法可以使用加载浏览器扩展/插件/插件的 headless 浏览器(即 PhantomJS、Selenium)来运行自动测试? 更具体地说,我想模拟广告拦截器(如 Ghostery、ad-b
我是 gradle 的新手,我使用 artifactory 作为我的 repo 服务器。我在网上查看了如何将我的项目发布到我的 repo 服务器,发现我可以使用 maven-publish 或使用 a
我想禁用某些状态的点击/事件,并仅使少数状态可点击。我通读了http://newsignature.github.io/us-map/处的文档,并且找不到与此问题相关的任何内容。 最佳答案 http:
据我了解,在Intellij中使用idea插件打开Maven构建的项目并不是最好的方法,即调用: mvn idea:idea 但是直接打开pom文件(Intellij有默认的Maven插件);同样的事
使用Artifactory plugin对于 Jenkins pipeline 来说是一种幸福,只要遵循文档就可以了。但后来我介绍了Maven Flatten plugin解析父模块和子模块 mvn
我已经安装了Elasticsearch版本1.7.1。一切正常。我也安装了 JDBC 驱动程序。检查下面我的插件文件夹 目录E:\Xampp\htdocs\my-elastic\elasticsear
在我使用 webpack common chunks 插件创建包含第三方库(如 angular、react、lodash 等)的 vendor 包之前,但后来我知道了 webpack dll
我们正在尝试使用(Jenkins、sonar、eclipse ...)安装 CI 平台。 为了让每个开发人员都可以在提交之前对他的代码进行分析,我想知道两种选择: 使用 Sonar 插件运行本地分析。
我知道这是一个比较特殊的问题。尽管如此,也许有些人知道这一点: 我想在 Eclipse 中使用 Maven 编译 Hector=> 分支:0.7.0 和标签:hector-0.7.0-29(https
我卡住了。我一直在尝试寻找或自己创建一个简单的准系统示例,说明如何为 VS 2010 Express 创建 Outlook 插件。我知道这在 VS 2010 Pro 中更简单,但是,在快速版本中真的不
我有以下排除过滤器来忽略所有 R 文件类: findbugs-exclude-filter.xml 当我将它用于 FindBugs-IDEA 插件时,它可以
我刚开始玩 CakePHP,我发现了 Wildflower CMS .我喜欢这个想法,并打算开始修补它。不过,我有一个问题。 在自述文件中,我发现了以下内容:“Wildflower 不是也不会是 Ca
虽然现在大部分情况都是使用n-api来编写插件,但是底层毕竟是v8(和libuv),使用v8编写简单的插件,同时熟悉v8的使用。 本文介绍在写c++插件时,简单又常用的写法,其实本质上,写插件
本篇是 Python 系列教程第 3 篇,更多内容敬请访问我的 Python 合集 Visual Studio Code的安装非常简单,就不放这里增加文章篇幅了。 相比PyCharm,V
Maven – 插件 什么是 Maven 插件? Maven 实际上是一个依赖插件执行的框架,每个任务实际上是由插件完成。Maven 插件通常被用来: 创建 jar 文件 创建 war
我正在编写一个插件来添加带有标签 [deposit_page] 的页面;该标记应替换为一些 PHP 代码。 这就是我所拥有的,但它不起作用。有什么我遗漏或做错了什么吗? function deposi
我是一名优秀的程序员,十分优秀!