Aser
Erfahrenes Mitglied
tag,
ich habe folgendes Problem:
Ich habe ein Textfeld (nein, das ist nicht das Problem). Hierbei handelt es sich um das Feld, wo die Nic-Names von Usern eingetippt werden, an die dann die pm geschickt wird. Hierfür will ich wiederum via Ajax, eine Tippergänzung anzeigen lassen (ala gmail). Das geht sogar. Es wird nach "ähnlichen" Usern gesucht und diese werden vorgeschlagen... damit man den User nicht ganz ausschreiben muss.
Vom Ajax Script kriege ich nun ne response
(nutze prototype)
die Variable beinhaltet mehrere Werte und wird daher gesplittet beim "|"...
zu einem eine Auflistung von Divs, wobei jedes eine andere bezeichnung und einen vorgeschlagenen user hat... diese aufzaehlung wird nun in den Vorschlag-Ergaenzungs-Div geschrieben... das geht auch
dann folt nochmal eine auflistung aller vorgeschlagener user, die durch ":" getrennt werden (dadurch habe ich vor, mir das auslesen von divs zu ersparen, da ich diese einfach schnell in einen Arry laden kann)
Wenn der Vorschalg-Div nun endlich befuellt wurde, kann ich via Tasteneingabe (z.B. Pfeiltasten) zwischen den Arrywerten (/vorgeschlagene User) wechseln
ich GLAUBE das geht sogar... da fangen meine Probleme an
die Varialbe AUSWAHLZEILE scheint sich zu ändern, je nachdem ob ich ich "peiloben" oder "pfeilunten" druecke
bei jeder Änderung
bzw function pfeilobengedrueckt() oder function pfeiluntengedrueckt() Ausführung soll
geheallezeilendurch(auswahlzeile)
ausgeführt werden
das scheint auch noch zu gehen
(Als Hinweis sei erwähnt, dass UNTERSTEZEILE scheinbar immer um vier Wärte höher ist, als Vorschläge(/Zeilen/Namen/Divs) vorhanden sind... dies kann ich mir nicht erklären, aber ich glaube das hat auch nix mit meinem Hauptproblem zu tun
mein Hauptproblem besteht darin, dass wenn
function geheallezeilendurch(auswahlzeile)
ausgeführt wird, nicht jede if-Funktion ausgeführt wird.
Zunächst habe ich versucht dynamisch mit einer While-Schleife alle Divs anzusprechen, da ich ja nicht weiss, wie viele Vorschäge(/Divs) vorhanden sind.
Dass das wiederum nicht geht, vermute ich mal liegt daran, dass nicht alle Divs vorhande sind, da ja die letzte Zeile angeblich 4 Plätze tiefer ist, als ausgegebene Zeilen(/Divs) vorhanden sind)
Daher gehe ich aus Spass davon aus, dass min 4 Divs vorhanden sind
Das eigentliche Problem fängt hier an
<problem>^^
Es scheint so, als ob die IF-Funktionen nur bis zu der Funktion ausgeführt werden, wie hoch die AUSWAHLZEILE ist... aber die Funktionen (//Probe-Vereinfacht) sind nicht selbst-durchnummeriert...
zumindest ändert der die Hintergrundfabe der Divs(/Zeile) nur bis zu dem Div, wo die AUSZWAHLZEILE als Wert hinspringt...
ich kann mir dies einfach nicht erklären
Falls dus bish hierher gelesen hast bedanke ich mich mal^^
damit es vielleicht verständlicher ist, ist vorübergehend ein Account dafür erstellt worden (dieser bereitet allerdings beim Login mehrere Personen mit demselben Namen Probleme)
Interessierte müssen auf
----------------------
Edited: Da sich das Problem glücklicherweise gelöst hat, wurde das Konto geschlossen.
----------------------
einloggen, dann auf PMs->PMschreiben und dort ins Adressfeld z.B. einmal den Buchstaben 'a' eingaben, dann werden Alle Mates vorgeschlagen, die ein a beinhalten... wenn man nun die Pfeiltastne nutzt (zumindest bei Firefox) sollte man den Bug erkennen können
nochmals Dank im Voraus
btw:^^
mir kommt es wie gesagt so vor, als ob javascript hier einfach bei welchen IFs keine Lust mehr hat...
ich habe folgendes Problem:
Ich habe ein Textfeld (nein, das ist nicht das Problem). Hierbei handelt es sich um das Feld, wo die Nic-Names von Usern eingetippt werden, an die dann die pm geschickt wird. Hierfür will ich wiederum via Ajax, eine Tippergänzung anzeigen lassen (ala gmail). Das geht sogar. Es wird nach "ähnlichen" Usern gesucht und diese werden vorgeschlagen... damit man den User nicht ganz ausschreiben muss.
Vom Ajax Script kriege ich nun ne response
(nutze prototype)
die Variable beinhaltet mehrere Werte und wird daher gesplittet beim "|"...
zu einem eine Auflistung von Divs, wobei jedes eine andere bezeichnung und einen vorgeschlagenen user hat... diese aufzaehlung wird nun in den Vorschlag-Ergaenzungs-Div geschrieben... das geht auch
dann folt nochmal eine auflistung aller vorgeschlagener user, die durch ":" getrennt werden (dadurch habe ich vor, mir das auslesen von divs zu ersparen, da ich diese einfach schnell in einen Arry laden kann)
Wenn der Vorschalg-Div nun endlich befuellt wurde, kann ich via Tasteneingabe (z.B. Pfeiltasten) zwischen den Arrywerten (/vorgeschlagene User) wechseln
ich GLAUBE das geht sogar... da fangen meine Probleme an
die Varialbe AUSWAHLZEILE scheint sich zu ändern, je nachdem ob ich ich "peiloben" oder "pfeilunten" druecke
bei jeder Änderung
bzw function pfeilobengedrueckt() oder function pfeiluntengedrueckt() Ausführung soll
geheallezeilendurch(auswahlzeile)
ausgeführt werden
das scheint auch noch zu gehen
(Als Hinweis sei erwähnt, dass UNTERSTEZEILE scheinbar immer um vier Wärte höher ist, als Vorschläge(/Zeilen/Namen/Divs) vorhanden sind... dies kann ich mir nicht erklären, aber ich glaube das hat auch nix mit meinem Hauptproblem zu tun
mein Hauptproblem besteht darin, dass wenn
function geheallezeilendurch(auswahlzeile)
ausgeführt wird, nicht jede if-Funktion ausgeführt wird.
Zunächst habe ich versucht dynamisch mit einer While-Schleife alle Divs anzusprechen, da ich ja nicht weiss, wie viele Vorschäge(/Divs) vorhanden sind.
Dass das wiederum nicht geht, vermute ich mal liegt daran, dass nicht alle Divs vorhande sind, da ja die letzte Zeile angeblich 4 Plätze tiefer ist, als ausgegebene Zeilen(/Divs) vorhanden sind)
Daher gehe ich aus Spass davon aus, dass min 4 Divs vorhanden sind
Das eigentliche Problem fängt hier an
<problem>^^
Es scheint so, als ob die IF-Funktionen nur bis zu der Funktion ausgeführt werden, wie hoch die AUSWAHLZEILE ist... aber die Funktionen (//Probe-Vereinfacht) sind nicht selbst-durchnummeriert...
zumindest ändert der die Hintergrundfabe der Divs(/Zeile) nur bis zu dem Div, wo die AUSZWAHLZEILE als Wert hinspringt...
ich kann mir dies einfach nicht erklären
Falls dus bish hierher gelesen hast bedanke ich mich mal^^
damit es vielleicht verständlicher ist, ist vorübergehend ein Account dafür erstellt worden (dieser bereitet allerdings beim Login mehrere Personen mit demselben Namen Probleme)
Interessierte müssen auf
----------------------
Edited: Da sich das Problem glücklicherweise gelöst hat, wurde das Konto geschlossen.
----------------------
einloggen, dann auf PMs->PMschreiben und dort ins Adressfeld z.B. einmal den Buchstaben 'a' eingaben, dann werden Alle Mates vorgeschlagen, die ein a beinhalten... wenn man nun die Pfeiltastne nutzt (zumindest bei Firefox) sollte man den Bug erkennen können
nochmals Dank im Voraus
btw:^^
PHP:
echo"<script language='JavaScript' type='text/javascript'>
<!--
var aktiv = window.setInterval('tippergaenzung()', 1000);
var neueradressinhalt, alteradressinhalt, wartezeitinsekunden='0';
function tippergaenzung()
{
neueradressinhalt = document.abzuschickendesformular.feldadressat.value;
if(neueradressinhalt == alteradressinhalt)
{
wartezeitinsekunden++;
if(wartezeitinsekunden == '3' && neueradressinhalt !='') //hier kann man die Wartezeit bis zum Popup einstellen
{
//alert('test');
////////////////////////////////////////////////
var neueradressinhalt=neueradressinhalt;
var myAjax = new Ajax.Request(
'adduseranfrage.php',
{
method: 'get',
parameters: 'nic=".$nic."&zz=".$zz."&adressinhalt='+neueradressinhalt,
onComplete: ergaenzeadressinhalt
}
);
/////////////////////////////////////////////////
}
}
else
{
wartezeitinsekunden='0';
}
alteradressinhalt = neueradressinhalt;
}
var korrigiertertext='testzzzzzzzz';
var zeilenbenutzerliste;
var unterstezeile='0';
function ergaenzeadressinhalt(vorschlaege)
{
var vorschlaege=vorschlaege.responseText;
var teil = vorschlaege.split('|');
korrigiertertext=teil[1];
var userexistiertnicht=teil[2];
var suchvorschlag=teil[3];
zeilenbenutzerliste=teil[4];
var zeilenbenutzer = zeilenbenutzerliste.split(':');
unterstezeile=zeilenbenutzer.length;
//auswahlzeilenupdaten('0');
var aktuellerauswahlnic=zeilenbenutzer[0]; //beim aller ersten start-quasi einfuegen des divs
if(userexistiertnicht!='')
{
document.getElementById('userexistiertnichtdiv').innerHTML = userexistiertnicht;
document.getElementById('userexistiertnichtdiv').style.display = 'block';
}
else
{
document.getElementById('userexistiertnichtdiv').style.display = 'none';
}
if( suchvorschlag!='')
{
document.getElementById('addusertippergaenzungdiv').innerHTML = suchvorschlag;
document.getElementById('addusertippergaenzungdiv').style.display = 'block';
SetToolTipPos('addusertippergaenzungdiv', mX + 30, mY + 30);
//var auswahlzeile='0';
}
else
{
document.getElementById('addusertippergaenzungdiv').style.display = 'none';
}
}
function tippergaenzungvervollstaendigen(vollernic)
{
var vollernic=vollernic;
//korrigiertertext=teil[0];
document.abzuschickendesformular.feldadressat.value = korrigiertertext + vollernic + ', ';
document.getElementById('addusertippergaenzungdiv').style.display = 'none';
document.abzuschickendesformular.feldadressat.focus();
}
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
//77 doppelt
//var zeilenbenutzer = zeilenbenutzerliste.split(':');
//var unterstezeile=zeilenbenutzer.length;
var auswahlzeile='0';
var neuezeile;
var aktuellerauswahlnic;
document.onkeypress=tasteneingabe;
function tasteneingabe(gedruecktetaste)
{
tastenCode=gedruecktetaste.keyCode;
if(tastenCode==38)pfeilobengedrueckt();
if(tastenCode==40)pfeiluntengedrueckt();
if(tastenCode==13)entergedrueckt();
}
function pfeilobengedrueckt()
{
//neuezeile=auswahlzeile-eins;
if(auswahlzeile!='0')
{
auswahlzeile--;
auswahlzeilenupdaten(auswahlzeile);
}
}
function pfeiluntengedrueckt()
{
if(auswahlzeile!=unterstezeile)
{
// alert('unterstezeilesollsein:' + unterstezeile);
auswahlzeile++;
auswahlzeilenupdaten(auswahlzeile);
}
}
function entergedrueckt()
{
alert(aktuellerauswahlnic + 'wird eingefuegtdu hast enter gedrueckt');
}
function auswahlzeilenupdaten(neuezeile)
{
auswahlzeile=neuezeile;
//alert('neue auswahlzeile:'+auswahlzeile +'---'+ neuezeile);
geheallezeilendurch(auswahlzeile);
//wurde verschoben
//var zeilenbenutzer = zeilenbenutzerliste.split(':');
//var unterstezeile=zeilenbenutzer.length;
//var zeilenbenutzer[0],zeilenbenutzer[1],zeilenbenutzer[2],zeilenbenutzer[3],zeilenbenutzer[4],zeilenbenutzer[5],zeilenbenutzer[6],zeilenbenutzer[7];
}
var zeilenr='0';
function geheallezeilendurch(auswahlzeile)
{
/*
//das sollte gehen, will aber nicht
zeilenr='0';
while ( zeilenr <= unterstezeile)
{
if(zeilenr == auswahlzeile)
{
document.getElementById('zeilenvorschlag'+zeilenr).style.background = 'lawngreen';
aktuellerauswahlnic=zeilenbenutzer[auswahlzeile];
}
else
{
document.getElementById('zeilenvorschlag'+zeilenr).style.background = '';
}
zeilenr++;
//var zeilenbenutzer
}
//das sollte gehen, will aber nicht - Schluss
*/
//Probe-vereinfacht
if(auswahlzeile=='0')
{
//alert('du hast gedrueckt,auswahlzeile:'+auswahlzeile);
document.getElementById('zeilenvorschlag0').style.background = 'lawngreen';
aktuellerauswahlnic=zeilenbenutzer[auswahlzeile];
}
else
{
document.getElementById('zeilenvorschlag0').style.background = 'red';
}
if(auswahlzeile=='1' )
{
//alert('du hast gedrueckt,auswahlzeile:'+auswahlzeile);
document.getElementById('zeilenvorschlag1').style.background = 'lawngreen';
aktuellerauswahlnic=zeilenbenutzer[auswahlzeile];
}
else
{
document.getElementById('zeilenvorschlag1').style.background = 'red';
}
if(auswahlzeile=='2' )
{
//alert('du hast gedrueckt,auswahlzeile:'+auswahlzeile);
document.getElementById('zeilenvorschlag2').style.background = 'lawngreen';
aktuellerauswahlnic=zeilenbenutzer[auswahlzeile];
}
else
{
document.getElementById('zeilenvorschlag2').style.background = 'red';
}
if(auswahlzeile=='3' )
{
//alert('du hast gedrueckt,auswahlzeile:'+auswahlzeile);
document.getElementById('zeilenvorschlag3').style.background = 'lawngreen';
aktuellerauswahlnic=zeilenbenutzer[auswahlzeile];
}
else
{
document.getElementById('zeilenvorschlag3').style.background = 'red';
}
//Probe-vereinfacht-geschlossen
}
//-->
</script>";
mir kommt es wie gesagt so vor, als ob javascript hier einfach bei welchen IFs keine Lust mehr hat...
Code:
//Probe-vereinfacht
if(auswahlzeile=='0')
{
//alert('du hast gedrueckt,auswahlzeile:'+auswahlzeile);
document.getElementById('zeilenvorschlag0').style.background = 'lawngreen';
aktuellerauswahlnic=zeilenbenutzer[auswahlzeile];
}
else
{
document.getElementById('zeilenvorschlag0').style.background = 'red';
}
if(auswahlzeile=='1' )
{
//alert('du hast gedrueckt,auswahlzeile:'+auswahlzeile);
document.getElementById('zeilenvorschlag1').style.background = 'lawngreen';
aktuellerauswahlnic=zeilenbenutzer[auswahlzeile];
}
else
{
document.getElementById('zeilenvorschlag1').style.background = 'red';
}
if(auswahlzeile=='2' )
{
//alert('du hast gedrueckt,auswahlzeile:'+auswahlzeile);
document.getElementById('zeilenvorschlag2').style.background = 'lawngreen';
aktuellerauswahlnic=zeilenbenutzer[auswahlzeile];
}
else
{
document.getElementById('zeilenvorschlag2').style.background = 'red';
}
if(auswahlzeile=='3' )
{
//alert('du hast gedrueckt,auswahlzeile:'+auswahlzeile);
document.getElementById('zeilenvorschlag3').style.background = 'lawngreen';
aktuellerauswahlnic=zeilenbenutzer[auswahlzeile];
}
else
{
document.getElementById('zeilenvorschlag3').style.background = 'red';
}
//Probe-vereinfacht-geschlossen
Zuletzt bearbeitet: