focus setzen bei der erste Feld ein Formular setzen

tonimaquela

Grünschnabel
ich möchte mit ein Barcodescanner die Felder meine Formular eingeben.
ich möchte den Focus auf der erste Feld setzen. nach Eingabe soll auf der nächste Feld springen.
usw bis alle Felder gescannt sind.
meine Form sieht so aus.
< ? php
echo '<form action ="" method="post">';

echo '<input type="text" name="seriennr" placeholder="seriennr"><br>';
echo '<input type="text" name="position" placeholder="position"><br>';
echo '<input type="text" name="chargenr" placeholder="chargenr"><br>';
echo '<input type="text" name="artikelnr" placeholder="artikelnr"><br>';
echo '<input type="submit" name="submit" value="Absenden!"><br>';
echo'</form>';
?>

Danke
 
Hallo,

Der Focuswechsel kannst du nur Clientseitig umsetzen (Kann ein Moderator das bitte verschieben). Dafür musst du Javascript verwenden. Für einen automatischen focuswechsel musst du dann im JS Regeln aufstellen, wann dieser zum nächsten Feld springen soll.
 
Warum setzt du per PHP das Formular?
Das ist aus meiner sicht unnötig. :)

Lösbar ist dies per JS :)
Abfragen wenn Feld1 belegt ist, dass er dann ins nächste Feld wandert.
Dabei musst du aber beachten dass Du die Regeln der Feld gut setzt, nicht dass das Feld nach 3 Zeichen ins nächste Springt :D
 
Danke. ich habe meine komplette Programm im PHP geschrieben. Danach schreibe ich die Daten in ein MySQL Datenbank.
kann ich Java Script und PHP mischen. meine Code sieht so aus. ich habe keine Ahnung von JS
< ? PHP
if ( !isset($_GET['user'])
or !isset($_GET['pmnr'])
or $_GET['user'] == ""
or $_GET['pmnr'] == ""
)
{
$_GET['user'] = "";
$_GET['pmnr'] = "";

}
else
{
//echo "hier bin ich";
$user =$_GET["user"];
$pmnr = $_GET["pmnr"];
//$arbeitplatz1=0;
echo "Hall0 $user $pmnr";
}
$user1 = $user;
$pmnr1 = $pmnr;


//echo "Hall02 $user1 $tischnr1 $pmnr1";

echo '<form action ="" method="post">';

echo '<input type="text" name="seriennr" placeholder="seriennr"><br>';
echo '<input type="text" name="position" placeholder="position"><br>';
echo '<input type="text" name="chargenr" placeholder="chargenr"><br>';
echo '<input type="text" name="artikelnr" placeholder="artikelnr"><br>';
echo '<input type="text" name="bemerkung" placeholder="bemerkung"><br>';
echo '<input type="submit" name="submit" value="Absenden!"><br>';
echo'</form>';

include 'config.php';


$db = new mysqli($mysqlserver,$mysqluser,$mysqlpass,$mysqldb);
if($db->connect_error):

echo 'hier ist keine Datenbankverbindung';
endif;

if(isset($_POST['submit'])) {

$seriennr = $_POST['seriennr'];
$position = $_POST['position'];
$chargenr = $_POST['chargenr'];
$artikelnr = $_POST['artikelnr'];
$bemerkung = $_POST['bemerkung'];

$absenden = $db->prepare("INSERT INTO reparatur (user,pmnr,seriennr,position,chargenr,artikelnr,bemerkung,datum) VALUES(?,?,?,?,?,?,?,NOW())");
$absenden->bind_param('siissss',$user1,$pmnr1,$seriennr,$position,$chargenr,$artikelnr,$bemerkung);
$absenden->execute();
}
$abfrage = $db->query("SELECT * FROM reparatur ORDER BY datum DESC LIMIT 10");
echo ' Es wurden '.$abfrage->num_rows.' Datensätze gefunden!<br>';

echo "<table border='1'>";
echo "<tr>";
echo "<th>",'ID',"</th>";
echo "<th>",'User',"</th>";
echo "<th>",'PMNr',"</th>";
echo "<th>",'Seriennr',"</th>";
echo "<th>",'position',"</th>";
echo "<th>",'ChargeNr',"</th>";
echo "<th>",'ArtikelNr',"</th>";
echo "<th>",'Bemerkung',"</th>";
echo "<th>",'Datum',"</th>";

while($ausgabe = $abfrage->fetch_object()){
echo "<tr>";
echo "<td>",$ausgabe->id,"</td>";
echo "<td>",$ausgabe->user,"</td>";
echo "<td>",$ausgabe->pmnr,"</td>";
echo "<td>",$ausgabe->seriennr,"</td>";
echo "<td>",$ausgabe->position,"</td>";
echo "<td>",$ausgabe->chargenr,"</td>";
echo "<td>",$ausgabe->artikelnr,"</td>";
echo "<td>",$ausgabe->bemerkung,"</td>";
echo "<td>",$ausgabe->datum,"</td>";
echo "</tr>";
}
echo "</table>";
?>
 
Ohne eines kleinen Umbau wird es wohl nicht gehen.

Etwa so würde ich es spontan machen. Ungetestet und Meinung nach immer noch Optimierungsbedarf. Fürs verstehen sollte es aber reichen :)

PHP:
<?php
include 'config.php';
if ( !isset($_GET['user'])
   or !isset($_GET['pmnr'])
   or $_GET['user'] == ""
   or $_GET['pmnr'] == ""
)
{
   $_GET['user'] = "";
   $_GET['pmnr'] = "";
}
else
{
   $user =$_GET["user"];
   $pmnr = $_GET["pmnr"];

   Hall0 $user $pmnr";
}

$user1 = $user;
$pmnr1 = $pmnr;

//Es macht mehr Sinn die Verbindung vor der Eingabe aufzubauen, da du ja eh bestehende Einträge anzeigen willst
$db = new mysqli($mysqlserver,$mysqluser,$mysqlpass,$mysqldb);
if(!$db->connect_error)
{
   echo 'hier ist keine Datenbankverbindung';
}
else
{
   if(isset($_POST['submit']))
   {
      
           $seriennr = $_POST['seriennr'];
           $position = $_POST['position'];
           $chargenr = $_POST['chargenr'];
           $artikelnr = $_POST['artikelnr'];
           $bemerkung = $_POST['bemerkung'];

           $absenden = $db->prepare("INSERT INTO reparatur (user,pmnr,seriennr,position,chargenr,artikelnr,bemerkung,datum) VALUES(?,?,?,?,?,?,?,NOW())");
           $absenden->bind_param('siissss',$user1,$pmnr1,$seriennr,$position,$chargenr,$artikelnr,$bemerkung);
           $absenden->execute();
   }

?>
   <form action ="" method="post">
       <input type="text" name="seriennr" placeholder="seriennr"><br>
       <input type="text" name="position" placeholder="position"><br>
       <input type="text" name="chargenr" placeholder="chargenr"><br>
       <input type="text" name="artikelnr" placeholder="artikelnr"><br>
       <input type="text" name="bemerkung" placeholder="bemerkung"><br>
       <input type="submit" name="submit" value="Absenden!"><br>
   </form>

<?php
   $abfrage = $db->query("SELECT * FROM reparatur ORDER BY datum DESC LIMIT 10");
   echo ' Es wurden '.$abfrage->num_rows.' Datensätze gefunden!<br>'; //hier kommt aber max. 10 heraus
?>
<table border='1'>";
   <tr>
       <th>ID</th>
       <th>User</th>
       <th>PMNr</th>
       <th>Seriennr</th>
       <th>position</th>
       th>ChargeNr</th>
       <th>ArtikelNr</th>
       <th>Bemerkung</th>
       <th>Datum</th>
   </tr>
   <?php while($ausgabe = $abfrage->fetch_object()): ?>
   <tr>
       <td>$ausgabe->id</td>
       <td>$ausgabe->user</td>
       <td>$ausgabe->pmnr</td>
       <td>$ausgabe->seriennr</td>
       <td>$ausgabe->position</td>
       <td>$ausgabe->chargenr</td>
       <td>$ausgabe->artikelnr</td>
       <td>$ausgabe->bemerkung</td>
       <td>$ausgabe->datum</td>
   </tr>
   <?php endwhile; ?>
</table>

<?php } //Schlie?ung IF der Datenbankverbindung ?>

Umd danach kannst du auf das Formular Javascript anwenden :)
 
Zurück