IF-Funktionen werden irgendwann einfach nicht mehr ausgeführt

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:^^


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:
Hi,

was sagt denn die Fehlerkonsole im Firefox?
Du solltest übrigens bei clientseitigen Problemen den Code posten, der im Browser ankommt, nicht den PHP-Code, der ihn generiert.

LG

PS.: Ein Zugang, den nur einer gleichzeitig benutzen kann, ist natürlich auch nicht sehr förderlich... Der Account scheint aber gar nicht zu funktionieren.
 
wie gesagt war der Login grad ein Missgeschick, das soeben behoben wurde

die php-Ausgabe ist quasi dieselbe, wie der ausgegebene Quellcode, falls es daran liegen sollte

Firebug bringt bei mir keine Fehlermeldung

HTML:
<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=aser&zz=1220459621&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>


Edited:------------------

Danke, daran lags
 
Zuletzt bearbeitet:
Nachtrag bezüglich des unrelevanten Bugs^^

Anstelle der Ajax Antwort, habe ich vom Webanbieter Werbung bekommen, die den ganzen Array verhundselt hat... das erklärt im nachhinein einiges^^

z.B.
Code:
Basti87:Atlantis:Vampy:Dominator:hawk:JJ:BlackFairy<!-- Ad by funpic.de --><noscript><div style="display:none">&nbsp;</div></noscript><script type="text/javascript" src="http://media.funpic.de/layer.php?bid=16527198"></script><!-- End Ad by funpic.de -->
 

Neue Beiträge

Zurück