我为以下问题创建了一个jsfiddle。我试图重新创建它,但它很难,因为数据是在服务器端使用PHP从MySQL数据库显示的。
我有一张桌子,我试图将点击的<td>
内容传递到我的模态框中。如果它没有任何内容,则模式框应显示为用户ID,但输入框为空。
由于某种原因,用户ID变好了,但开始时间和结束时间输入没有!另外,当我检查元素时,它会为所有用户显示8 - 5吗?有谁知道为什么会这样?
php代码,点击+数据参数
for($dow = 0; $dow <= 6; $dow++) {
?><td class="js-clickable" data-user_id="<?php echo $user_id; ?>" data-start_time="<?php echo $row['st']; ?>" data-end_time="<?php echo $row['et']; ?>"<?php
if (array_key_exists($dow, $list)) {
foreach ($list[$dow] as $row) {
if ($row['user_id'] == $user_id) {
echo date("H:i", strtotime($row['st'])) . " - " . date("H:i", strtotime($row['et']));
答案 0 :(得分:1)
问题在于您的PHP
代码,因为小提琴中显示的HTML
标记清楚地表明迈克尔的data-end_time
和data-start_time
显示为{{1} }。
从数据库中获取的值可能存在一些错误。确保正确检索数据库中的值。
你写的jquery在这种情况下完美无缺。
答案 1 :(得分:1)
这是一个PHP问题,因为它是在PHP上编写的。
现在为什么会出现date("H:i", strtotime($row['start_time']))
,我认为期望值($row['start_time']
和$row['end_time']
)不会将预期的字符串返回给{{1}功能。
检查此块的代码并检查它是如何返回的。
strtotime
我希望我能帮到你。
答案 2 :(得分:0)
我已经确定了您的PHP代码导致数据在表格中错误填充的问题。
主要问题是编写标记的部分中的错误逻辑。例如,用于写入数据属性的$ row变量与用于写入TD内容的$ row变量完全不同。此外,您甚至在查找该用户的计划之前编写了第一个TD标记的数据属性。我修改了该部分中的代码,以便将完整的TD标记写入两个区域,或者使用预定数据,或者不使用。代码仍然相当混乱,但至少现在它的工作原理。另外,在发布的pastebin中的代码的第57行,在php结束标记(?&gt;)之间有一个错误的引号。它是:?&#34;&gt;它应该是:?&gt;&#34;
一些较小的观察结果: - Bootstrap CSS被链接了两次(一个本地,一个远程)。不是问题的一部分,只是一个观察。 - 表单和周围div的结束标记顺序错误。关闭div之前的表单。
以下是正确填充表的数据属性和内容的工作代码:
// Code removed at request of OP.