2017-08-04 17 views
-1

私はスクリプト作成にはかなり新しいので、私と一緒に忍耐してください。私は時間をフェッチし、別のボタンが押されたときにデータベース(MySQL)に渡すことができる次のコードを持っています。クリックすると現在の時間を入力できるボタン

<form action="includes/data_input.inc.php" method="POST"> 
 

 
    <!-- button - Start Timer --> 
 
    <timer> 
 
\t <input id="starttime_button" name = "starttime_button" type="button" value="Start Timer" 
 
       onclick="document.getElementById('starttime').value = new Date().toLocaleTimeString(navigator.language, {hour: '2-digit', minute:'2-digit', second:'2-digit'})" /> 
 
\t <input type="time" id="starttime" name="starttime" value="" /> 
 
    </timer>

これはFirefoxではなく、Google Chromeで[OK]を動作します。私にこれをさせる一般的なコードはありますか?

...どちらの場合も

<form action="includes/data_input.inc.php" method="POST"> 
 

 
    <!-- button - Start Timer --> 
 
    <timer> 
 
\t <input id="starttime_button" name = "starttime_button" type="button" value="Start Timer" 
 
       onclick="getElementById('starttime').Date('i:s')" /> 
 
     <p type="time" id="starttime" name="starttime" value="" ></p> 
 
    </timer>

を、私はこのなど、多くのことを試してみましたが、それはかなり働いていない、メインフォームが続くと</form>

で終了前もって感謝します。

ブライアン。

+0

Chromeコンソールでエラーが発生している可能性があります。これはjava関連の質問ではないので、あなたの質問から "java"タグを削除してください。 – Armaiti

+0

私たちにJSFiddleをお願いします。 :) –

+0

@ Armaiti - これはすべて私にとって新しいものです。私はChromeのコンソールで何を探しているのか分かりません。私はどうやってそれに到達するのですか?また、私はなぜそれがJavaの質問ではない知っていない。 javaはWebページ用ではありませんか?完全にここで失われ、私の手を保持し、優しくガイダンスしてください。 – Brian

答えて

-1

私は理由にこのdidntの仕事を信じて傾けます。私の元のコードには時間が表示されるボックスが小さすぎた場合

<form action="includes/data_input.inc.php" method="POST"> 
 

 
    <!-- button - Start Timer --> 
 
    <timer> 
 
\t <input id="starttime_button" name = "starttime_button" type="button" value="Start Timer" 
 
       onclick="document.getElementById('starttime').value = new Date().toLocaleTimeString(navigator.language, {hour: '2-digit', minute:'2-digit', second:'2-digit'})" /> 
 
\t <input type="time" id="starttime" name="starttime" value="" /> 
 
    </timer>

そのサイズだけという... OKでした。表示ボックスを拡張するためにCSSコードを変更すると、それが最初に期待したようにすべて機能しました。私はまだ理解できませんが、それは二次的であり、なぜこれが後日問題となるのかを知るための食糧です。

このスレッドに協力いただき、ありがとうございます。私は本当にこれにあなたの時間と労力を感謝します。

0

スクリプトを属性に入れるのではなく、別のJavaScriptファイルまたはスクリプトタグの中に入れる方がはるかに優れています。あなたがこれまで持っているものまで修正するには:

<form action="includes/data_input.inc.php" method="POST"> 
 
     <!-- button - Start Timer --> 
 
    \t <timer> 
 
    \t  <input id="starttime_button" name = "starttime_button" type="button" value="Start Timer" onclick="setStartTime()" /> 
 
    \t  <input type="text" id="starttime" name="starttime" value="" /> 
 
    \t </timer> 
 
    </form> 
 

 
    <script> 
 
     function setStartTime(){ 
 
      document.getElementById('starttime').value = new Date().toLocaleTimeString(navigator.language, {hour: '2-digit', minute:'2-digit', second:'2-digit'}); 
 
     } 
 
    </script>

+0

現在、作業コードがありますが、問題の内容や解決方法は説明されていません。 –

+0

ありがとうh01001000。ここで問題となるのは、1/2作業バージョンでは、ボタンが押されたときを見ることができます。このコードはそれをしません - 私が間違ってそれを交換しない限り。スクリプトはヘッダーにあるべきですか? – Brian

+0

多くの場合、スクリプトタグは、最後に ''の前の項目として本文タグ内にあります。日付を非表示にするには、Scott Marcusの示唆しているように、「非表示」のタイプを使用できます。それ以外の場合は、入力 'starttime'を 'date'の型に変更することができますが、スクリプト内で日付オブジェクトがどのように処理されるかを変更する必要があります。 – h01001000

-1

問題は、あなたがそれと一致していない値でinput type=timeを移入しようとしているということです。結果を通常のinput type=textに置くことができますが、値を表示しようとしているだけの場合は、最初にフォームフィールドに配置しないことをお勧めします。これは、ユーザーがこれらの値を変更できるようになり、マークアップを使用してフィールドを読み取り専用にします。

コードを現代の標準に準拠した有効なコードに分割し、出力のコンテナをinput type=timeからdivに変更した後で動作します。以下では、テキストボックスと好ましいdivの両方に結果を配置する方法を示しています。

// Get DOM references: 
 
var btn = document.getElementById("startTime_button"); 
 
var output1 = document.getElementById("output1"); 
 
var output2 = document.getElementById("output2"); 
 

 
// Set up click event handler: 
 
btn.addEventListener("click", function(){ 
 
    var result = new Date().toLocaleTimeString(navigator.language, { 
 
                 hour: '2-digit', 
 
                 minute:'2-digit', 
 
                 second:'2-digit' 
 
                }); 
 
                 
 
    output1.textContent = result; 
 
    output2.value = result; 
 
});
<!-- timer is not a valid element --> 
 
<div> 
 
    <input id="startTime_button" name = "starttime_button" type="button" value="Start Timer"> 
 
    <div id="output1"></div> <!-- If you are just outputting a value, don't use a form element --> 
 
    <input type="text" id="output2"> 
 
</div>

+0

Scottさん、ありがとうございます。私は約1時間でこれを試していきます。私は、ボタンが押されたときにボタンが押された時間を出力し、最終的なコミットボタンが押されたときにその値をデータベースに追加する必要があります。あなたが私に必要なのは、2ページ分のものをコピーすることができますが、ホストスペースについて少し心配しています(少し編集することができます) – Brian

+0

@Brian、次に入力あなたのフォームが提出されたときに送信されるようになりますが、ユーザには全く表示されません。 –

+0

ありがとうございます - これはまだ試してみませんが、ユーザーがこれを変更できるという考えはあります。サイトはチケットデータをデータベースに追加することです。ユーザーが通話中に介入された場合、チケットを閉じるために要した合計時間をより正確に記録するために、開始時刻を修正します。私は正常にデータを渡すためにボタンがクリッピングされている時間をキャプチャするためのコードを少し持っていますが、フォーム内でフォームを取得できないので、このメソッドは開始時には機能しません。初心者として、このプロジェクトは、私がもっと欲しいものを許可するために、おそらくもっと良く書けるかもしれませんが、私はたくさんのことを学んでいます:) – Brian

関連する問題