2016-07-24 8 views
0

私はphpとjavascriptに新しいので、私の無知を許してください。私は複数のセルにタイムスタンプを挿入するjavascriptを作成しようとしています。私は、現在のタイムスタンプを入力するためにmysqlデータベースを挿入または更新するボタンを持っていましたが、私が探しているルートではありません。誰かがより良いアイデアを持っているなら、私に知らせてください。基本的に私は、idが&クラスが重複することができ一意であるように、まず必要がclassないidを追加する<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(); 
    } 
} 

を機能をテストすることができませんでしたフィールドへのクリックに基づいて各テキスト入力にタイムスタンプを一意に設定するには、関数と代入が少し異なる必要があります。

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

に時間を挿入するにはボタンをクリックしたいと思いますしたがって、<input id="field" type="text" name="time[]" size="11">を使用して、この変更を<input id="field" class="timestamp-fields" type="text" name="time[]" size="11">に変更すると、

変更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; 
    } 
} 

しかし、あなたはあなたがPHPを使用してサーバー側に変換する必要があるかもしれません UTC/GMT 0ないクライアントDateを使用している覚えておく必要があります。

+0

...あなたは、もはやあなたの代わりにこのようなものを使用し、ボタンを削除し、setTime機能を削除することができ添付setTime機能を持つボタンを必要としないだろう、これは完璧に働きました!ありがとうございました!私は何をしたいのか十分に説明していませんでした。今、私はすべてので同じ時刻を取得しています。カーソルを使ってセルを選択し、タイムスタンプボタンをクリックしてそこにユニークな時間を入力したいと思います。 – mikenewphp

関連する問題