Ohne Alert Funktioniert garnichts

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ohne Alert Funktioniert garnichts

    Hi,

    ich hab ein nteressantes Problem

    Also ich rufe in PHP ECHO eine Javascript Funktion auf. In dieser wird ein Element angesprochen. Dieses existiert im Quelltext!!

    Javascript gibt mir allerdings den Fehler aus, dass das Element nicht existiert(is null)

    Wenn ich mir jetzt allerdings per Alert den Inhalt des Elements ausgeben lasse, findet er es aufeinmal.

    Alert aufruf genau 1 Zeile über Funktionsaufruf



    es reicht auch ein alert in der Funktion vor dem Ansprechen des Elements, was 100% da ist.
    Zuletzt geändert von AmicaNoctis; 12.04.2010, 14:49. Grund: Doppelpost
    Lurchi ! Lurchi ! Lurchi !

  • #2
    Hallo,

    du greifst vermutlich mit der Funktion auf Elemente zu, bevor die Seite fertig geladen ist. Das alert verschafft dir in diesem Falle nur etwas mehr Zeit.

    Abhilfe: pack deinen Funktionsaufruf hier rein:

    Code:
    window.onload = function () {
        // hier die Funktion aufrufen, welche auf Elemente zugreift
        // oder gleich deinen gesamten Code
    };
    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      probier ich gleich mal aus. klingt auch irgendwie logisch
      Lurchi ! Lurchi ! Lurchi !

      Kommentar


      • #4
        ...hmm

        will immernoch nicht. Fehlermeldung unverändert
        Lurchi ! Lurchi ! Lurchi !

        Kommentar


        • #5
          Alert hilf immernoch........................

          Der Aufruf
          PHP-Code:
          $eol "\n";
          $output '<script type="text/javascript">'.$eol;
          $output .= 'function setSavedValues()'.$eol.'{'.$eol;
              
          $output .= 'getProjectsByCid('.$customer.',\'';
              
          $sep '';
              
          $i=0;
              foreach(
          $report as $rid)
              {
                  if(
          $i>0)
                  {
                      
          $sep ',';
                  }
                  
          $output .= $sep.$this->getPidByRid($rid);
                  
          $i++;
              }
              
          $output .= '\');'.$eol;
              foreach(
          $report as $rid)
              {
                  
          $projArr[] = $this->getPidByRid($rid);
              }
              
          $projArr array_unique($projArr);
              foreach(
          $projArr as $pid)
              {
                  
          $output .= 'selProj('.$pid.',1);'.$eol;
              }
              
          $output .= 'fillInvoice(\''.implode(","$report).'\');'.$eol;
          $output .= '}'.$eol;
          $output .= 'window.onload = setSavedValues;';
          $output .= '</script>'
          Die Javascript Funktion in der das Element angesprochen wird:
          Code:
          function selProj() {
          	var par = new Array();
          	for (var i=0;i<arguments.length;i++) {
          		par[i] = arguments[i];
                  }
          	var pid = par[0];
          	removeToolTip();
          	if(document.getElementById("proj"+pid).checked == true)
          	{
          		document.getElementById("niRL"+pid).style.display = 'block';
          		if(par[1] == null)
          		{
          			markReportsOfProject(pid);			
          		}
          	}
          	else
          	{
          		document.getElementById("niRL"+pid).style.display = 'none';
          		unMarkReportsOfProject(pid);
          	}
          }
          Lurchi ! Lurchi ! Lurchi !

          Kommentar


          • #6
            Zitat von Anbu Beitrag anzeigen
            Der Aufruf
            Zum x-ten verflixten Mal - bei der Diskussion eines solchen clientseitigen Problems ist serverseitiger Code absolut uninteressant!

            Zeige den Code, den der Client erhält.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              steht doch drunter
              Lurchi ! Lurchi ! Lurchi !

              Kommentar


              • #8
                Zitat von Anbu Beitrag anzeigen
                steht doch drunter
                Und wofür postest du den serverseitigen Kram dann überhaupt?


                Wie das HTML aussieht, und wo und wann die genannte Funktion aufgerufen wird, wissen wir immer noch nicht.

                Mensch Leute, macht das Helfen doch nicht immer noch schwerer als nötig ...
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9


                  1. Der BETFOFFENE HTML Teil ist im ersten Code Block!
                  2. ach ja 2. gibts nicht
                  Lurchi ! Lurchi ! Lurchi !

                  Kommentar


                  • #10
                    Zitat von Anbu Beitrag anzeigen
                    1. Der BETFOFFENE HTML Teil ist im ersten Code Block!
                    Sag mal, willst du mich verarschen?

                    Dass dein erster Codeblock ist serverseitiger Code ist, und dass solcher bei einem clientseitigen Problem nicht von Interesse ist, habe ich dir gerade schon gesagt!
                    Wir wissen nicht, was die ganze dort verwendeten PHP-Variablen enthalten - also können wir auch nicht wissen, was dieser PHP-Code letztendlich für eine Ausgabe bewirkt. (Und selbst wenn, wäre es nicht unsere Aufgabe, erst mal herauszufinden, was das Ergebnis irgendwelchen serverseitigen Codes ist.)

                    Letzte Aufforderung - wenn du jetzt nicht langsam mal mit einer brauchbaren Problembeschreibung kommst, fliegt der Thread auf den Müll.
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      Code:
                      <div class="niCheckbox">
                      	<input name="proj[]" checked="checked" onchange="selProj(167)" id="proj167" type="checkbox"></div>
                      	<div class="niProjTitle">test</div>
                      	<div id="niVolume167" class="niVolume">100 €</div>
                      	<div class="niRL">
                      	<a id="niRL167" onclick="showReportByPid(167);" title="Show Reports">
                      		<img src="gfx/iq_report.gif" alt="">
                      	</a>
                      </div>
                      <script type="text/javascript">
                      function setSavedValues()
                      {
                      getProjectsByCid(84,'167');
                      selProj(167,1);
                      fillInvoice('19441');
                      }
                      window.onload = setSavedValues;</script>
                      zufrieden??

                      edit: bisschen eingerückt
                      Zuletzt geändert von Anbu; 12.04.2010, 15:35.
                      Lurchi ! Lurchi ! Lurchi !

                      Kommentar


                      • #12
                        Zitat von Anbu Beitrag anzeigen
                        zufrieden??
                        Nein - auch worauf sich die Fehlermeldung bezieht, hast du uns immer noch nicht mitgeteilt.
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13

                          Fehlermeldung: document.getElementById("proj"+pid) is null
                          Betroffene Zeile in Funktion selProj:

                          Code:
                          if(document.getElementById("proj"+pid).checked == true)
                          Code:
                          <div class="niCheckbox">
                          	<input name="proj[]" checked="checked" onchange="selProj(167)" id="proj167" type="checkbox"></div>
                          	<div class="niProjTitle">test</div>
                          	<div id="niVolume167" class="niVolume">100 €</div>
                          	<div class="niRL">
                          	<a id="niRL167" onclick="showReportByPid(167);" title="Show Reports">
                          		<img src="gfx/iq_report.gif" alt="">
                          	</a>
                          </div>
                          <script type="text/javascript">
                          function setSavedValues()
                          {
                          getProjectsByCid(84,'167');
                          selProj(167,1);
                          fillInvoice('19441');
                          }
                          window.onload = setSavedValues;</script>

                          Code:
                          function selProj() {
                          	var par = new Array();
                          	for (var i=0;i<arguments.length;i++) {
                          		par[i] = arguments[i];
                                  }
                          	var pid = par[0];
                          	removeToolTip();
                          	if(document.getElementById("proj"+pid).checked == true)
                          	{
                          		document.getElementById("niRL"+pid).style.display = 'block';
                          		if(par[1] == null)
                          		{
                          			markReportsOfProject(pid);			
                          		}
                          	}
                          	else
                          	{
                          		document.getElementById("niRL"+pid).style.display = 'none';
                          		unMarkReportsOfProject(pid);
                          	}
                          }
                          Zuletzt geändert von Anbu; 12.04.2010, 15:46.
                          Lurchi ! Lurchi ! Lurchi !

                          Kommentar


                          • #14
                            Nimm FireBug für Firefox und geh es im Einzlschrittmodus durch. Wir wissen nicht, was in pid drin steht, noch ob es das Element überhaupt gibt (auch wenn du dir für deinen Teil sicher bist). So kommen wir nicht weiter.
                            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                            Super, danke!
                            [/COLOR]

                            Kommentar


                            • #15
                              Problem immer noch nicht nachvollziehbar.

                              Wenn ich aus dem gezeigten Code eine HTML-Datei erstelle, und aus dem JavaScript alle Aufrufe von Funktionen, deren Code nicht bekannt ist, herauslösche, dann zeigt mir Firefox da keinerlei Fehlermeldung mehr an.

                              Firebug zeigt mir beim Durchdebuggen an, dass die genannte Zeile fehlerfrei abgearbeitet werden kann.
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Kommentar

                              Lädt...
                              X