2017-06-28 7 views
2

pdo phpを使用してEnterキーを押したとき、次のテキストボックスに移動するにはどうすればよいですか?私は私のPHPのコーディングをチェックするのに役立つ誰かが必要です。私のデータベース名は、testphp_db、私のテーブル名は、ユーザはです。pdo PHPを使用してEnterキーを押したときに次のテキストボックスに移動するにはどうすればよいですか?

testphp_db.php

<?php 

$dsn = 'mysql:host=localhost;dbname=testphp_db'; 
$username = 'root'; 
$password = ''; 

try{ 
    //Connect To MySQL Database 
    $con = new PDO($dsn,$username,$password); 
    $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
} catch (Exception $ex) { 

    echo 'Not Connected '.$ex->getMessage(); 
} 

$barcode = ''; 
$detail = ''; 
$quantity = ''; 

function getPosts() 
{ 
    $posts = array(); 

    $posts[0] = $_POST['barcode']; 
    $posts[1] = $_POST['detail']; 
    $posts[2] = $_POST['quantity']; 

    return $posts; 
} 

//Search And Display Database 

if(isset($_POST['search'])) 
{ 
    $data=getPosts(); 
    if(empty($data[0])) 
    { 
     echo 'Enter Barcode To Search'; 
    } else { 

     $searchStmt=$con->prepare('SELECT * FROM users WHERE barcode = :barcode'); 
     $searchStmt->execute(array(':barcode'=>$data[0] 
     )); 

     if($searchStmt) 
     { 
      $user=$searchStmt->fetch(); 
      if(empty($user)) 
     { 
      echo 'No Data For This Barcode'; 
     } 

     $barcode=$user[0]; 
     $detail=$user[1]; 
     $quantity=$user[2]; 
     } 
    } 
} 

?> 

<!DOCTYPE html> 
<html> 
    <head> 
     <title>PHP (MySQL PDO): Search</title> 
    </head> 
    <body> 
     <form action="testphp_db.php" method="POST"> 

      Barcode: <input type="text" name="barcode" value="<?php echo $barcode;?>"><br><br> 
      <input type="submit" name="search" value="Search"><br><br> 

      Detail:&nbsp;&nbsp;&nbsp;&nbsp; <?php echo $detail;?><br><br> 
      Quantity: <input type="text" name="quantity" value="<?php echo $quantity;?>"><br><br> 

     </form> 
    </body> 
</html> 

私が入力した自分のバーコードのテキストボックスとプレスに番号を挿入すると、それは、製品の詳細を表示します。私の問題は、入力用のカーソルが消えてしまい、数量テキストボックスに移動できないことです。

+1

コードを入力する必要がありますが、ソリューションが実際にJavascriptになるように思えます。 – Terminus

+0

私のコードを確認できますか?コードをアップロードするだけです。 –

答えて

0

フォームが送信されたためにカーソルが消えます。ブラウザはphptest.phpにPOSTし、そのページをロードします。カーソルが失われた場所。 HTMLフォームがどのように動作するはずです。

id検索を送信した後で数量を集中させたい場合は、数量にautofocusという属性を都合よく設定することができます。

上部に、この追加:

$id = ''; 
$fname = ''; 
$lname = ''; 
$autofocus = array(
    'quantity' => '' 
); // this is new 
function getPosts() 
{ 
    $posts = array(); 

    $posts[0] = $_POST['id']; 
    $posts[1] = $_POST['fname']; 
    $posts[2] = $_POST['lname']; 

    return $posts; 
} 

//Search And Display Database 

if(isset($_POST['search'])) 
{ 
    $autofocus['quantity'] = 'autofocus'; // this is new 
    ... 

をそして一番下に:

Quantity: <input type="text" name="lname" placeholder="Last Name" value="<?php echo $lname;?>" <?php echo $autofocus['quantity']; ?>><br><br> 

または、代わりに上記の変更の、ページにAJAX要求を行うためにJavascriptを使用することができますフォームを提出することなく検索を実行します。あなたはJSを持っていないので、私は例を提供するつもりはありません(特に質問しない限り)。

+0

これは、Parseエラーを示しています:シンタックスエラー、20行目のD:\ xampp \ htdocs \ testphp_db \ testphp_db.phpの予期しない「[」」autofocus = ['quantity' => ''] ;;少し問題があるようです。 –

+0

@GeorgeLiewVuiChee hmm。 '[...]'の代わりに 'array(...)'を使うように編集しました。どのバージョンのPHPを使用していますか? – Terminus

+0

多分私はPHPの古いバージョンを使用します。さて、私は成功しましたが、その後私は自分のWebブラウザをリフレッシュします。カーソルが直接数量テキストボックスに移動します。私が望むのは、私がウェブブラウザをリフレッシュすると、カーソルがバーコードのテキストコードに戻ります。 –

関連する問題