2016-07-24 70 views
0

我是新來的PHP和JavaScript所以請原諒我的無知。我正在嘗試創建一個JavaScript以將時間戳插入到多個單元格。我確實有一個按鈕來插入或更新mysql數據庫以輸入時間戳now(),但那不是我正在尋找的路線。如果有人有更好的主意,請告訴我。基本上我想點擊一個按鈕插入時間到<td><center><input id="field" type="text" name="time[]" size="11"></center></td>.JavaScript php將時間戳添加到多個單元格

<?php 
 
include 'config.php'; 
 
?> 
 
<html> 
 
<head> 
 
<script> 
 

 
function getTimeStamp(id) { 
 
\t var now = new Date(); 
 
     return (now.getHours() + ':' + ((now.getMinutes() < 10) ? ("0" + now.getMinutes()) : (now.getMinutes()))); 
 
} 
 

 
function setTime() { 
 
    document.getElementById('field').value = getTimeStamp(); 
 

 
</script> 
 
</head> 
 
<body > 
 
<div> 
 

 
<button type="button" onclick="setTime();">TimeStamp</button> 
 
<table > 
 

 
<tr > 
 
    <td >id</td> 
 
    <td >First Name</td> 
 
    <td >Last Name</td> 
 
    <td >Location</td> 
 
    <td >Remarks</td> 
 
    <td >Timestamp</td> 
 
    
 
</tr> 
 

 
<?php 
 
while ($row = mysqli_fetch_array($sql)){ 
 
\t print '<tr> 
 
\t \t <td><input type="hidden" name="id[]" value="'. $row[0] .'">' .$row[0]. '</td> 
 
\t \t <td><input type="hidden" name="first[]" value="'. $row[1] .'">' .$row[1]. '</td> 
 
\t \t <td><input type="hidden" name="last[]" value="'. $row[2] .'">' .$row[2]. '</td> 
 
\t \t <td><input name="location[]" value="'. $row[3] .'">' .$row[3]. '</td> 
 
\t \t <td><center><input type="text" name="remarks[]" size="43"></center></td> 
 
\t \t <td><center><input id="field" type="text" name="time[]" size="11"></center></td> 
 
\t </tr>'; 
 
} 
 
?> 
 
</table> 
 
</div> 
 
</body> 
 
</html>

回答

0

如果我理解正確,您想通過單擊按鈕在所有輸入字段time[]中設置時間戳?

我不能完全測試的功能,因爲你getTimestamp函數調用不在這裏定義的其他功能,但它應該工作...

function setTime() { 
    var col=document.querySelectorAll('input[type="text"][name="time[]"]'); 
    if(col){ 
     for(var n in col) if(col[n].nodeType==1) col[n].value=getTimeStamp(); 
    } 
} 

基於您的評論

如果你想根據點擊字段,爲每個文本輸入設置唯一的時間戳,然後功能和分配需要有點不同。正如你將不再需要附帶setTime功能的按鍵,你可以改用這樣的事情和刪除按鈕,刪除setTime功能...

function bindTimeEvents(){ 
    var col=document.querySelectorAll('input[type="text"][name="time[]"]'); 
    if(col){ 
     for(var n in col)if(col[ n ].nodeType ==1){ 
      col[n].addEventListener('click',function(e){ 
       this.value=getTimeStamp(); 
      }.bind(col[n]),false); 
     } 
    } 
} 
document.addEventListener('DOMContentLoaded',bindTimeEvents,false); 
+0

正如@Arif指出的那樣 - ID必須是唯一的 - 如果您選擇使用上面的函數,您可以簡單地將它從代碼中移除,因爲不需要ID以編程方式定位元素。 – RamRaider

+0

這工作完美無缺!謝謝!我沒有足夠的解釋我想要做的事情。現在我在所有輸入中獲得相同的時間[type =「text」] [name =「time []」]。我想,是用我的光標選擇單元格,然後單擊時間戳按鈕並在那裏輸入獨特的時間。 – mikenewphp

+0

我們的目標是取悅 - 有時候,目標不太好 – RamRaider

0

首先,您需要添加一個class沒有id的ID是唯一的&類可以重複所以寧可用<input id="field" type="text" name="time[]" size="11">這個改爲<input id="field" class="timestamp-fields" type="text" name="time[]" size="11">然後

change setTime功能

function setTime() { 
    var elements = document.getElementsByClassName('timestamp-fields'), l = elements.length, t = getTimeStamp(); 
    for (var i = 0; i < l; i++) { 
    elements[i].value = t; 
    } 
} 

但你要記住,你正在使用的客戶端Date這是不 UTC/GMT 0,所以你可能需要使用PHP將它轉化成你的服務器端。

+0

這個工作完美!謝謝!我沒有足夠解釋我要綁定什麼。現在我在所有中獲得相同的時間。我想要使​​用我的光標選擇單元格,然後單擊時間戳按鈕並在其中輸入唯一時間。 – mikenewphp