我有一個基於傳遞值從一個頁面到另一個創建動態表的問題。在第一頁上,我定義了開始時間,結束時間和增量間隔。所以在我選擇開始時間之後,比如早上8點,選擇會議長度15分鐘,結束時間將根據開始時間以15分鐘爲間隔創建。示例結束時間:早上8點15分,上午8點30分,上午8點45分......等等,直到我的最後一個值不能大於下午9點。我可以在結束時選擇這些值中的任何一個。在我選擇這三個值開始,結束和會議長度後,我點擊提交,將我帶到第二頁。在這個頁面上,我想根據傳遞的值創建我的表。這是我迄今爲止的代碼:如何根據開始和結束時間值創建動態表?
<form name="myForm" id="myForm" method="post" action="SeconfPage.cfm">
<fieldset>
<table>
<tr>
<th>Date</th>
<td><input type="date" id="datepicker" name="datepicker"/></td>
</tr>
<tr>
<th>Start Time</th>
<td><input type="text" id="stime" name="stime"/></td>
</tr>
<tr>
<th>Length of meeting</th>
<td>
<select name="meeting" id="meeting">
<option value="">--Select length--</option>
</select>
</td>
</tr>
<tr>
<th>End Time</th>
<td><input type="text" id="etime" name="etime"></td>
</tr>
<tr>
<td><input type="button" value="Create" onClick="getTable()"></td>
</tr>
</table>
</fieldset>
</form>
$(function() {
for (var i = 5; i <= 60; i += 5) {
$('#meeting').append('<option value="' + i + '">' + i + ' min' + '</option>');
}
function setEndTime() {
var meetingLength = parseInt($('#meeting').find('option:selected').val() || 0);
var selectedTime = $('#stime').timepicker('getTime');
if(selectedTime == null || selectedTime == ""){
alert("Please select the start time");
}else{
selectedTime.setMinutes(selectedTime.getMinutes() + parseInt(meetingLength, 10), 0);
$('#etime').timepicker('option', 'minTime', selectedTime);
$('#etime').timepicker('setTime', selectedTime);
}
}
$('#stime').timepicker({
'timeFormat':'h:i a',
'minTime': '8:00 AM',
'maxTime': '9:00 PM',
'step': 30
}).on('changeTime', function() {
setEndTime();
});
var count = 0;
$('#etime').timepicker({
'timeFormat':'h:i a' + ' (Slot '+count+')',
'minTime': '8:00 AM',
'maxTime': '9:00 PM',
'step': function() {
var val = parseInt($('#meeting').find('option:selected').val());
count++
return val;
},
});
$('#meeting').bind('change', function() {
setEndTime();
});
});
function getTable(){
document.myForm.submit();
}
我想知道如何以及什麼是在第二頁上創建表格的最佳方法。所有值都從我的表單傳遞。一種用於例如在第二頁上,我有:
start time: 8:00am
end time: 5:00pm
meeting length: 20min
我的想法是創建一個for循環是這樣的:
for(var i=stime; i<=etime; i+=meeting){
var tbl = "<tr><td>"+stime+"-"+i+"</td></tr>"
}
像這樣的東西會給我基礎上,開始時間和下一個值增量。在創建表之後,將這個表存儲在MySQL數據庫中的最佳方式是什麼?我仍然沒有弄清楚如何讓這個工作。如果任何人都能給我一個提示,那麼最好的方法是什麼,如果我走在正確的道路上。
在此先感謝。
(編輯)*什麼是該表存儲在MySQL DATABSE一旦表創建*只是我¢的最好方式,但是這是你應該弄清楚在設計UI之前。否則,前端可能會指定一個非常糟糕的數據庫結構......我建議退後一步。把它分成幾步。首先決定您的應用程序的最佳數據庫設計。然後在界面上工作,最後查詢。 – Leigh
我仍然在決定我應該走哪條路以及在這種情況下最有效的方法。感謝您的建議。 –
如果您正在考慮使用整數來確定您的會議時間和持續時間,一種方法是使用unix時間。 Unix時間在java(ColdFusion的底層引擎)以及UTC中相當標準。但是,如果您的應用程序不會包含多個位置,則這會帶來進一步的複雜性,這可能是不必要的。也就是說,使用unix時間來存儲時間/日期的好處是它將被標準化/集中化,並且您可以使用像Moment.js這樣的UI庫來將時間本地化到最終用戶的位置。 – rodmunera