2017-06-28 21 views
2

Wie kann ich zum nächsten Textfeld gehen, wenn ich die Eingabe mit pdo php drücke? Ich brauche jemanden, der mir hilft, meine PHP-Codierung zu überprüfen. Mein Datenbankname ist testphp_db, mein Tabellenname ist Benutzer.Wie gehe ich zum nächsten Textfeld, wenn ich die Eingabetaste mit PDO PHP drücke?

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> 

Wenn ich Nummer auf meinem Barcode Textbox und drücken einfügen eingeben, wird es die Details des Produkts zeigen. Mein Problem ist der Cursor zum Eintippen verschwindet und es kann nicht in das Textfeld Menge gehen.

+1

Sie müssen Ihren Code bereitstellen, aber es klingt wie Ihre Lösung tatsächlich in Javascript sein wird. – Terminus

+0

Können Sie den Code für mich überprüfen, ich lade nur den Code hoch. –

Antwort

0

Der Cursor verschwindet, weil das Formular übergeben wurde. Der Browser sendet einen POST an phptest.php und lädt dann diese Seite. Wo der Cursor war ist verloren. So sollen HTML-Formulare funktionieren.

Wenn Sie nur möchten, dass die Menge nach dem Senden einer id Suche fokussiert wird, können Sie das Attribut autofocus auf die Menge setzen.

Fügen Sie diese an der Spitze:

$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 
    ... 

Und dann am Boden:

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

Oder anstelle der oben genannten Änderungen, könnten Sie Javascript verwenden, um eine AJAX-Anforderung an eine Seite zu machen Das würde die Suche durchführen, ohne das Formular zu senden. Da Sie keinen JS haben, werde ich kein Beispiel geben (außer Sie fragen ausdrücklich nach einem).

+0

Es zeigt Parse-Fehler: Syntaxfehler, unerwartet '[' in D: \ xampp \ htdocs \ testphp_db \ ​​testphp_db.php in Zeile 20. Der Autofokus = ['quantity' => ''] ;; scheinen ein bisschen problem. –

+0

@GeorgeLiewVuiChee hmm. Bearbeitet, um 'array (...)' anstelle von '[...]' zu verwenden. Welche Version von PHP verwendest du? – Terminus

+0

Vielleicht verwende ich alte Version von PHP. Ok, so ist es mir gelungen, aber dann wenn ich meinen Webbrowser aktualisiere. Der Cursor springt direkt in das Textfeld Menge. Was ich will ist, wenn ich meinen Webbrowser aktualisiere, gehe der Cursor zurück zu Barcode-Textcode. –

Verwandte Themen