Javascript 在表中合并td的一种方法
所以我正在尝试创建一个每周日历。 我用javascript编写了一个循环来创建空表,然后使用php和javascript从SQL表中获取的值修改了相应td的innerHTML。 我的问题是,当我设置特定td的行跨度而不是与下一个td合并时,会将它们移动到表的末尾。如果我有两个以上的信誉点,我会张贴图片来显示我的问题 如果你想看的话,这是我的代码Javascript 在表中合并td的一种方法,javascript,php,html,html-table,Javascript,Php,Html,Html Table,所以我正在尝试创建一个每周日历。 我用javascript编写了一个循环来创建空表,然后使用php和javascript从SQL表中获取的值修改了相应td的innerHTML。 我的问题是,当我设置特定td的行跨度而不是与下一个td合并时,会将它们移动到表的末尾。如果我有两个以上的信誉点,我会张贴图片来显示我的问题 如果你想看的话,这是我的代码 函数determinationRowSpanBetween稍后在代码中创建。如果td中的rowspan>1只占用一个空间,即未与其他td合并,则会
函数determinationRowSpanBetween稍后在代码中创建。如果td中的rowspan>1只占用一个空间,即未与其他td合并,则会导致一系列错误。确保您对添加到rowspan的每一行都进行了说明。您对如何进行说明有什么建议吗?请尝试在while循环中设置一个计数器,用于计算在rowspan中添加的行数,然后从for循环中的14行中减去该值。这样,它将显示正确的行数,我不知道这是否会导致您试图显示的实际内容出现问题。你需要上传照片让我确认…我现在就上传照片!我有足够的声望点谢谢好吧,我明白你想做什么了。首先,开始/结束时间是否始终在表中显示的时间范围内?最后我修复了它谢谢你的帮助我按照你说的做了,但这花了我很长时间我仍在学习:
// Declare usefull information about the database and host
$mysql_host = "-host info-";
$mysql_database = "-database info-";
$mysql_user = "user";
$mysql_password = "pass";
// open the connection
$link = mysql_connect($mysql_host,$mysql_user, $mysql_password, $mysql_database);
// connect to the database
mysql_select_db($mysql_database, $link) or die('database not selected'. mysql_error());
// Select * from the table created in the database
$result = mysql_query("SELECT * FROM Appointment;")
or die("Could not query:" . mysql_error());
echo "<script type='text/javascript' > "
. "var hours = new Array('9:00','9:30','10:00','10:30','11:00','11:30', "
. "'12:00','12:30','13:00','13:30','14:00','14:30','15:00','15:30');"
. ""
. "var days = new Array('Mon','Tue','Wed','Thu','Fri','Sat');"
. ""
. "for ( i = 0; i < 14 ; i++ ) "
. "{"
. "document.write('<tr id='+hours[i]+':00'+'>');"
. "document.write('<th>'+ hours[i]+'</th> '); "
." for ( k = 0 ; k < 6; k++)"
."{"
. "document.write('<td id='+days[k] +'> </td>'); "
. "}"
. "document.write('</tr>');"
."}"
. " </script> ";
while( $row = mysql_fetch_array( $result ))
{
$timestamp = strtotime($row['Date']);
$day = date('D', $timestamp);
$from = $row['StartTime'];
$to = $row['EndTime'];
$rowspan = determinRowSpanBetween($from,$to);
echo "<script type='text/javascript'> "
. " var divToAddTo = GetElementInsideContainer('".$from."','".$day."');"
. "divToAddTo.className = 'busy';"
. "divToAddTo.rowspan='".$rowspan."';"
. "divToAddTo.innerHTML='Something to do';"
. "function GetElementInsideContainer(containerID, childID) {"
. " var elm = {};"
. " var elms = document.getElementById(containerID).getElementsByTagName('*');"
. " for (var i = 0; i < elms.length; i++) {"
. " if (elms[i].id === childID) {"
. " elm = elms[i];"
. " break;"
. " }"
. "}"
. "return elm;"
. "}"
. " </script>" ;
}