php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS Probleme mit HTML5, Bootstrap oder jQuery ?

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 2 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 03-06-2009, 13:32
pinguin0814
 Registrierter Benutzer
Links : Onlinestatus : pinguin0814 ist offline
Registriert seit: Feb 2009
Beiträge: 11
pinguin0814 ist zur Zeit noch ein unbeschriebenes Blatt
Standard Focus auf Textfeld setzen

Hallo,

habe ein Problem mit focus() setzen auf ein Textfeld, wenn die Datei nicht komplett neu geladen wird, sondern die Werte über Ajax übergeben werden.

hier werden die Daten eingeschrieben:

HTML-Code:
<input type="text" name="laenge" size="25" id="eingabe" value="" onkeyup="check(laenge);">
ein Javascript ruft die Ajax Funktion auf und die Funktion focussetzen():

HTML-Code:
function check(laenge)
{
	if (laenge.value.length==13)
{
	load();
	focussetzen();
}
}
in der function focussetzen soll der Focus wieder auf dasselbe input Feld gesetzt werden:

HTML-Code:
function focussetzen()
{
	document.getElementByID("eingabe").focus();
}
dies ist nun leider nicht der Fall.
Fällt irgendjemanden dazu etwas ein, wie das Textfeld immer wieder den Focus erhält, ohne das die Datei neu geladen wird???
Mit Zitat antworten
  #2 (permalink)  
Alt 03-06-2009, 13:41
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

nimm in der load() den aufruf vor:
PHP-Code:
function load()
{
  ..
  if (
ajax_obj.readyState == && ajax_obj.status == 200)
  {
    
focussetzen();
  }

ohne mehr code kann ich aber nur raten.

peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #3 (permalink)  
Alt 03-06-2009, 14:10
pinguin0814
 Registrierter Benutzer
Links : Onlinestatus : pinguin0814 ist offline
Registriert seit: Feb 2009
Beiträge: 11
pinguin0814 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo Kropff,

danke für die schnelle Antwort, leider blieb das gewünschte Ergebnis aus.

Ich füge dir mal meine Funktion load() dazu, vllt. erkennst Du den Fehler.
Deinen Code habe ich erstmal wieder rausgenommen, da es leider nicht die Lösung brachte.

HTML-Code:
function load()
{
  var eingabe=document.getElementById("eingabe").value;
  with (new Ajax()){
  
    url="./sn_scan.php";
    method="POST";
    params="eingabe="+eingabe;
    onSuccess=successHandler;
    onError=errorHandler;
    doRequest();
  }
   
//Den Text in die Seite einfuegen
function successHandler(txt,xml){
  document.getElementById("text").innerHTML=txt;
 
}

//Fehler
function errorHandler(msg){
  document.getElementById("text").innerHTML=msg;
}
}
ansonsten funktioniert alles, bloss der Focus wird nicht automatisch in das textfeld gesetzt. Bei Bedienung des Tabs springt er erst in das Feld.

Zur Erläuterung, die Daten werden per Barcodescanner eingelesen und weiterverarbeitet.
Dieses passiert schnell hintereinander, deswegen die Lösung per Ajax, um nicht jedesmal die komplette Datei neu zu laden.

Ich hoffe meine Erläuterung war einigermaßen verständlich.
Danke für im vorraus für deine Bemühungen.
Mit Zitat antworten
  #4 (permalink)  
Alt 03-06-2009, 14:47
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

wir beiden sind blind wie die nacht! nicht
PHP-Code:
document.getElementByID("eingabe").focus(); 
sondern
PHP-Code:
document.getElementById("eingabe").focus(); 
btw: firebug nutzen, dann findest du solche fehler sofort.

peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #5 (permalink)  
Alt 03-06-2009, 15:08
pinguin0814
 Registrierter Benutzer
Links : Onlinestatus : pinguin0814 ist offline
Registriert seit: Feb 2009
Beiträge: 11
pinguin0814 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ok, das war mein Tippfehler. Hätte ich sehen müssen.

Aber leider ist das Problem damit nicht gelöst, es ist zum verzweifeln.

Vielleicht fällt jemanden noch ein Lösung dazu oder hatte selber schon einmal das Problem.
Mit Zitat antworten
  #6 (permalink)  
Alt 03-06-2009, 15:14
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

hast du ggf. ein online-beispiel verfügbar?

peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #7 (permalink)  
Alt 03-06-2009, 15:21
pinguin0814
 Registrierter Benutzer
Links : Onlinestatus : pinguin0814 ist offline
Registriert seit: Feb 2009
Beiträge: 11
pinguin0814 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

leider im moment nur lokal, aber geb mir ein paar minuten
Mit Zitat antworten
  #8 (permalink)  
Alt 03-06-2009, 15:54
pinguin0814
 Registrierter Benutzer
Links : Onlinestatus : pinguin0814 ist offline
Registriert seit: Feb 2009
Beiträge: 11
pinguin0814 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ist leider doch nicht so schnell möglich, sorry

Habe aber mal ein jpg angehangen.

Und zwar werden hier die S/N Nummern eingegeben. Beim ersten Aufruf ist der Focus in dem Textfeld. Da die Datei neu geladen wird.
Sind nun (siehe Funktion check(laenge)) 13 Zeichen eingegeben rufe die Funktion load() auf. Per Ajax wird die $eingabe übergeben und bearbeitet, funktioniert auch alles wunderbar.
Nun sollte der Focus aber wieder in dem Textfeld stehen, siehe Funktion focussetzen(), dies geschieht aber nicht.

Füge auch noch einmal die ajax.js ein:

HTML-Code:
function Ajax() {
  //Eigenschaften deklarieren und initialisieren
  this.url="";
  this.params="";
  this.method="GET";
  this.onSuccess=null;
  this.onError=function (msg) {
    alert(msg)
  }
}

Ajax.prototype.doRequest=function() {
  //Ueberpruefen der Angaben
  if (!this.url) {
    this.onError("Es wurde kein URL angegeben. Der Request wird abgebrochen.");
    return false;
  }

  if (!this.method) {
    this.method="GET";
  } else {
    this.method=this.method.toUpperCase();
  }

  //Zugriff auf Klasse für readyStateHandler ermoeglichen  
  var _this = this;
  
  //XMLHttpRequest-Objekt erstellen
  var xmlHttpRequest=getXMLHttpRequest();
  if (!xmlHttpRequest) {
    this.onError("Es konnte kein XMLHttpRequest-Objekt erstellt werden.");
    return false;
  }
  
  //Fallunterscheidung nach Uebertragungsmethode
  switch (this.method) {
    case "GET": xmlHttpRequest.open(this.method, this.url+"?"+this.params, true);
                xmlHttpRequest.onreadystatechange = readyStateHandler;
                xmlHttpRequest.send(null);
                break;
    case "POST": xmlHttpRequest.open(this.method, this.url, true);
                 xmlHttpRequest.onreadystatechange = readyStateHandler;
                 xmlHttpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
                 xmlHttpRequest.send(this.params);
                 break;
  }  

  //Private Methode zur Verarbeitung der erhaltenen Daten
  function readyStateHandler() {
    if (xmlHttpRequest.readyState < 4) {
      return false;
    }
    if (xmlHttpRequest.status == 200 || xmlHttpRequest.status==304) {
      if (_this.onSuccess) {
        _this.onSuccess(xmlHttpRequest.responseText, xmlHttpRequest.responseXML);
      }
    } else {
      if (_this.onError) {
        _this.onError("["+xmlHttpRequest.status+" "+xmlHttpRequest.statusText+"] Es trat ein Fehler bei der Datenbertragung auf.");
      }
    }
  }
}

//Gibt browserunabhaengig ein XMLHttpRequest-Objekt zurueck
function getXMLHttpRequest() 
{
  if (window.XMLHttpRequest) {
    //XMLHttpRequest fuer Firefox, Opera, Safari, ...
    return new XMLHttpRequest();
  } else 
  if (window.ActiveXObject) {
    try {   
      //XMLHTTP (neu) fuer Internet Explorer 
      return new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
      try {        
        //XMLHTTP (alt) fuer Internet Explorer
        return new ActiveXObject("Microsoft.XMLHTTP");  
      } catch (e) {
        return null;
      }
    }
  }
  return false;
}
Miniaturansicht angehängter Grafiken
Focus auf Textfeld setzen-lieferschein.jpg  
Mit Zitat antworten
  #9 (permalink)  
Alt 03-06-2009, 16:01
Wyveres
 Registrierter Benutzer
Links : Onlinestatus : Wyveres ist offline
Registriert seit: Dec 2006
Ort: Rügen
Beiträge: 763
Blog-Einträge: 2
Wyveres ist zur Zeit noch ein unbeschriebenes Blatt
Wyveres eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von pinguin0814 Beitrag anzeigen
Hallo Kropff,

danke für die schnelle Antwort, leider blieb das gewünschte Ergebnis aus.

Ich füge dir mal meine Funktion load() dazu, vllt. erkennst Du den Fehler.
Deinen Code habe ich erstmal wieder rausgenommen, da es leider nicht die Lösung brachte.

HTML-Code:
function load()
{
  var eingabe=document.getElementById("eingabe").value;
  with (new Ajax()){
  
    url="./sn_scan.php";
    method="POST";
    params="eingabe="+eingabe;
    onSuccess=successHandler;
    onError=errorHandler;
    doRequest();
  }
   
//Den Text in die Seite einfuegen
function successHandler(txt,xml){
  document.getElementById("text").innerHTML=txt;
 
}

//Fehler
function errorHandler(msg){
  document.getElementById("text").innerHTML=msg;
}
}
ansonsten funktioniert alles, bloss der Focus wird nicht automatisch in das textfeld gesetzt. Bei Bedienung des Tabs springt er erst in das Feld.

Zur Erläuterung, die Daten werden per Barcodescanner eingelesen und weiterverarbeitet.
Dieses passiert schnell hintereinander, deswegen die Lösung per Ajax, um nicht jedesmal die komplette Datei neu zu laden.

Ich hoffe meine Erläuterung war einigermaßen verständlich.
Danke für im vorraus für deine Bemühungen.
Den Focus in die Success Function setzten ... das verhalten is normal da er den focus auf das Textfeld setzt bevor die Success function durch ist.

Sowas kannste ganz einfach herrausfinden ;D setz einfach mal text außerhalb des Ajax aufrufes in die load function ins textfeld ;D

oder nach dem aufruf der load function in der check function.
__________________
Bitte Beachten.
Foren-Regeln
Danke
Mit Zitat antworten
  #10 (permalink)  
Alt 03-06-2009, 16:19
pinguin0814
 Registrierter Benutzer
Links : Onlinestatus : pinguin0814 ist offline
Registriert seit: Feb 2009
Beiträge: 11
pinguin0814 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@Wyveres, die Idee hatte ich auch schon, hat mich aber auch nicht weitergebracht.
Mit Zitat antworten
  #11 (permalink)  
Alt 03-06-2009, 16:56
Wyveres
 Registrierter Benutzer
Links : Onlinestatus : Wyveres ist offline
Registriert seit: Dec 2006
Ort: Rügen
Beiträge: 763
Blog-Einträge: 2
Wyveres ist zur Zeit noch ein unbeschriebenes Blatt
Wyveres eine Nachricht über ICQ schicken
Standard

Was mir gerade an der Load function auffällt ;D die schleifen ...
HTML-Code:
function load()
{
  var eingabe=document.getElementById("eingabe").value;
  with (new Ajax())
  {
  
    url="./sn_scan.php";
    method="POST";
    params="eingabe="+eingabe;
    onSuccess=successHandler;
    onError=errorHandler;
    doRequest();
  }
<--- hier fehlt doch was?   
//Den Text in die Seite einfuegen
function successHandler(txt,xml)
{
  document.getElementById("text").innerHTML=txt;
 
}

//Fehler
function errorHandler(msg)
{
  document.getElementById("text").innerHTML=msg;
}
}<--- die hier vielleicht?
is der Code im orginal auch so?

und normalerweise müsste es eigentlich gehen ... da ich es eigentlich immer so mache ... wenn ich den focus innerhalb einer ajax function nach dem abarbeiten der ajax function zurück auf ein bestimmtes feld setzen will, tue ich das innerhalb des onComplete oder onSuccess Block. Weil er den Focus erst dann wieder auf das Feld setzt wenn die Ajax function durch ist.
das würde bei dir heißen.
HTML-Code:
//Den Text in die Seite einfuegen
function successHandler(txt,xml)
{
  document.getElementById("text").innerHTML=txt;
  document.getElementById("eingabe").focus(); 
}
__________________
Bitte Beachten.
Foren-Regeln
Danke
Mit Zitat antworten
  #12 (permalink)  
Alt 04-06-2009, 15:04
pinguin0814
 Registrierter Benutzer
Links : Onlinestatus : pinguin0814 ist offline
Registriert seit: Feb 2009
Beiträge: 11
pinguin0814 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,

so habe soeben zum ansehen die Datei aufgespielt.

Link

Bitte im IE ansehen, das es nur darauf optimiert bzw. gebraucht wird.

Die Datei sn_scan.php habe ich auf das wesentliche reduziert.

Nach der Eingabe von 13 Zeichen wird die Funktion load() aufgerufen. Danach sollte der Focus wieder im Textfeld stehen. Bin für jede Hilfe dankbar.

Hier noch einmal die sn_scan1.php

HTML-Code:
<?php
session_start();
?>
<body onLoad="window.document.getElementById('eingabe').focus();">
<script type="text/javascript" src="ajax1.js"></script>
<script type="text/javascript" src="suggest1.js"></script>
<script language="javascript">
function check(laenge)
{
if (laenge.value.length==13)
{
	load();
}
}
</script>
<?php
if(isset($_POST["eingabe"]))
{
	$eingabe=$_POST["eingabe"];
}
if(isset($_GET["eingabe"]))
{
	$eingabe=$_GET["eingabe"];
}
//if (!get_magic_quotes_gpc())
//$eingabe = addslashes($eingabe);
$ausgabe.= '<div>'.
'<input type="text" id="eingabe" name="laenge" size="25" value="" onkeyup="check(laenge)">'.
'</div>';
print '<div id="text">';
print $ausgabe.'</div>';
?>
sowie die Funktion load() die in der suggest1.php aufgerufen wird:

HTML-Code:
function load()
{
  var eingabe=document.getElementById("eingabe").value;
  with (new Ajax()){
  
    url="./sn_scan1.php";
    method="POST";
    params="eingabe="+eingabe;
    onSuccess=successHandler;
    onError=errorHandler;
    doRequest();
    }
}
//Den Text in die Seite einfuegen
function successHandler(txt,xml){
  document.getElementById("text").innerHTML=txt;
	document.getElementById("eingabe").focus();
}
//Fehler
function errorHandler(msg){
	document.getElementById("text").innerHTML=msg;
}
Gruß und Danke
Mit Zitat antworten
  #13 (permalink)  
Alt 04-06-2009, 16:12
Wyveres
 Registrierter Benutzer
Links : Onlinestatus : Wyveres ist offline
Registriert seit: Dec 2006
Ort: Rügen
Beiträge: 763
Blog-Einträge: 2
Wyveres ist zur Zeit noch ein unbeschriebenes Blatt
Wyveres eine Nachricht über ICQ schicken
Standard

onkeyup="check(laenge)"

firefox firebug ... laenge is nicht definiert ... wie währe es mit this? ... an der stelle ? da du ja in der function auf laenge.value.length zugreifst ... währe das schonmal sinvoller.
__________________
Bitte Beachten.
Foren-Regeln
Danke
Mit Zitat antworten
  #14 (permalink)  
Alt 04-06-2009, 17:09
pinguin0814
 Registrierter Benutzer
Links : Onlinestatus : pinguin0814 ist offline
Registriert seit: Feb 2009
Beiträge: 11
pinguin0814 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@Wyveres danke, ja, das ist korrekt, läuft nun auch im Firefox, aber leider nicht im IE welcher für mich vordergründig ist.
Mit Zitat antworten
  #15 (permalink)  
Alt 05-06-2009, 08:09
Wyveres
 Registrierter Benutzer
Links : Onlinestatus : Wyveres ist offline
Registriert seit: Dec 2006
Ort: Rügen
Beiträge: 763
Blog-Einträge: 2
Wyveres ist zur Zeit noch ein unbeschriebenes Blatt
Wyveres eine Nachricht über ICQ schicken
Standard

Läuft nicht im IE heist was? ...
__________________
Bitte Beachten.
Foren-Regeln
Danke
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
wert von textfeld an dyn. textfeld übergeben? Davidaff Archiv / Trash 6 05-02-2008 19:23
Focus auf Eingabefeld setzen balou3 HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 4 23-09-2004 14:04
focus im input-file nach hinten setzen hell HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 3 03-07-2003 16:31
js: Cursor in Textfeld setzen Troublegum HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 10 26-03-2002 20:49
Help!! Focus auf Formularelement setzen Nexxus21 HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 2 22-10-2001 18:16

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script ansehen ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script

Mit unserer Lösungen können Sie nahezu jeden B2B / B2C Marktplatz betreiben den Sie sich vorstellen können. Ganz egal ob Sie einen Automarktplatz, Immobilenportal oder einfach einen Anzeigenmarkt betreiben möchten. Mit ebiz-trader können Sie Ihre Anforder

11.10.2018 Berni | Kategorie: PHP/ Anzeigenmarkt
PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 03:47 Uhr.