2017-01-06 16 views
1

バーコードスキャナは、すべてのスキャン後にキーコード13を送信する別のキーボードであることがわかります。入力フィールドが1つの非常に単純なフォームがあります。バーコードをクリックし、POSTデータへの送信をクリックします。私はこれにはjavascriptが必要だと思うが、私はjavascriptでうまくいかない。バーコードスキャナの複数の値を持つ単純なHTMLフォームの入力フィールド

最終結果は次のようになります。複数のバーコードがスキャンされ、画像の下部に表示されていることがわかります。

目標はキーボードに触れることなく所望の数のバーコードをスキャンすることです。スキャンが完了したら、マウスをクリックして送信ボタンを押します。投稿をクリックすると、別のページに投稿する必要があります。

enter image description here

私は、これはjavascriptので良いですが、誰かのために単純なことであると確信しています。

ここにHTMLフォームコードがあります。

<form action="myform5.php" method="post"> 
    <p>First name: <input type="text" name="serial" /></p> 
    <input type="submit" name="submit" value="Submit" /> 
</form> 

私の質問は、私が上で説明したことをどのようにすることができますか?

ありがとうございます。

答えて

1

これは動作するはずです。

var codes = ""; 
 
var codes_el = document.getElementById('codes'); 
 
var output_el = document.getElementById('output'); 
 

 
function process_key(event){ 
 
    
 
    var letter = event.key; 
 
    
 
    if (letter === 'Enter'){ 
 
    event.preventDefault(); 
 
    letter = "\n"; 
 
    event.target.value = ""; 
 
    } 
 
    
 
    // match numbers and letters for barcode 
 
    if (letter.match(/^[a-z0-9]$/gi)){ 
 
    codes += letter; 
 
    } 
 
    
 
    
 
    codes_el.value = codes; 
 
    output_el.innerHTML = codes; 
 
}
<form method="POST" action="myform5.php"> 
 
    <input onkeydown="process_key(event)" /> 
 
    <input type="submit" value="Send" /> 
 
    <input type="hidden" name="codes" id="codes" /> 
 
</form> 
 

 
<pre id="output"> 
 
</pre>

次に、あなたがそうのようmyform5.phpに取得することができます:

<?php 
// codes will be a string of barcodes seperated by "\n" 
$codes = $_POST['codes']; 

// get as array like so 
$barcodes = explode("\n", $codes); 

// build up string of barcodes 
$barcode_str = ""; 
$prefix = ''; 
foreach ($barcodes as $barcode){ 
    $barcode_str .= $prefix . "'" . $barcode . "'"; 
    $prefix = ', '; 
} 

$query = "select * from hdds where serial IN (" . $barcode_str . ");"; 

/* do things with query here */ 

// once your done processing 
// redirect the user back to the form page 
header("Location: FormPage.html"); 
?> 

私はあなたのバーコードはDB内の文字列ですと仮定します。

したがって、各バーコードをクエリにラップする必要があります。

+0

これはうまくいくはずです。しかし、私はtextareaの入力ボックスを避けたい。 それほどプロフェッショナルではありません。あなたは私が上の写真に示されているものを達成するのを手伝ってくれますか? – user2107349

+0

これはあなたが思っていたものにもっと似ていますか? –

+0

私は上記を試しましたが、全く動作しません。私は本当にあなたの助けに感謝します。あなたはあなたのコードを見ていただけますか? – user2107349

関連する問題