Ergebnis 1 bis 7 von 7
  1. #1
    gumpo03 ist offline Grünschnabel
    registriert
    29-06-2012
    Beiträge
    2

    Wert definiert, Fehlerkonsole sagt undefined...

    Ich bin gerade dabei, ein kleines Script zu proggen, in dem jezt aber ein für mich unverständlicher Fehler auftritt.
    Erstmal das Script, die Fehlerbeschreibung kommt danach ^^
    PHP-Code:
    function simulation()
    {
    ...

    x++;
    get_enemy(vs);
    charhp char[7] * * (char[3] + 1);
    enemyhp enemy[7];
    fight();

    ...
    }

    ...

    function 
    fight()
    {
    alert(charhp);
    alert(enemyhp);

    *Function Fight() ist erstmal nur zum prüfen, ob die Werte Korrekt berechnet wurden, Function get_enemy() liest Werte aus einer Datenbank aus und schreibt sie in das Array "enemy".

    Der Fehler ist, das die Fehlerkonsole (von Google Chrome) beim ausführen des Scriptes anzeigt, das die Variable 'enemyhp' nicht definiert ist:
    Code:
    Uncaught ReferenceError: charhp is not defined      dr.js:43
    fight      dr.js:43
    simulation      dr.js:30
    onclick
    Allerdings habe ich dies ja durch "charhp = char[7] * 5 * (char[3] + 1);" getan. (Das Array 'Char' wurde duch das auslesen eines Formulars befüllt)

    Habt ihr eine Idee, woran die Fehlermeldung liegen könnte?

  2. #2
    Avatar von scrypter
    scrypter ist offline Haudegen
    registriert
    25-06-2011
    Beiträge
    706

    AW: Wert definiert, Fehlerkonsole sagt undefined...

    die Variablen wurden im scope von function simulation() definiert und sind für function fight() daher nicht verfügbar

    unabhängig davon wird die Rechnung nicht stimmen, da char[] bestimmt strings enthält und das + eine Stringverlängerung bewirkt

    d.h. charhp = char[7] * 5 * (char[3] + 1); wenn char[7] '2' enthält und char[3] '2' enthält, dann soll 30 rauskommen, es wird aber 210 rauskommen, da js nur bei Multiplikationen und beim Teilen die als String vorliegenden Zahlen automatisch in number umwandelt

    daher müsstest Du charhp = char[7] * 5 * (char[3] *1 + 1); verwenden, damit auch die Berechnung stimmt
    Geändert von scrypter (30-06-2012 um 00:20 Uhr) Grund: tippfehler

  3. #3
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.678

    AW: Wert definiert, Fehlerkonsole sagt undefined...

    Laut dem geposteten Code sind die Variablen global und deswegen "sollte" es funktionieren:
    Code:
    function test(){
    	a = 1;
    	check();
    }
    function check(){
    	alert(a);
    }
    ABER mit globalen Variabeln zu hantieren ist immer eine Gefahr (und ich vermute, dass einfach irgendwo ein "var" vor der Variablen steht und dann scrypter Recht hat) und sollte möglichst vermieden werden. Das sollte bei dir auch kein Problem sein, wenn du klug mit Parametern und Rückgabewerten umgehst.

  4. #4
    Avatar von scrypter
    scrypter ist offline Haudegen
    registriert
    25-06-2011
    Beiträge
    706

    AW: Wert definiert, Fehlerkonsole sagt undefined...

    @kkapsner: Dein Beispiel funktioniert nur, wenn test() aufgerufen wird, ruft man check() direkt auf geht's eben nicht

    diesen Beitrag kannste löschen! Blödsinn! sorry hab das fight(); in simulation() übersehen in gumpo03's code
    Geändert von scrypter (30-06-2012 um 00:46 Uhr)

  5. #5
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.678

    AW: Wert definiert, Fehlerkonsole sagt undefined...

    Da hast du Recht, aber im Code von gumpo03 ist der Aufruf ja auch in simulation().

  6. #6
    gumpo03 ist offline Grünschnabel
    registriert
    29-06-2012
    Beiträge
    2

    AW: Wert definiert, Fehlerkonsole sagt undefined...

    Bin noch anfänger
    Also wenn ich das richtig verstanden habe sieht es so aus: Wenn var beim Definieren vor einer Variable steht macht sie das lokal. (Was bei mir zutrifft, weiter oben wird die Variable mit var definiert) ich müsste die Variablen also beim Aufrufen der Funktion übergeben.. Somit müsste mein Code:
    PHP-Code:
    function simulation() 

    ... 

    x++; 
    get_enemy(vs); 
    charhp char[7] * * (char[3] * 1); 
    enemyhp enemy[7]; 
    fight(charhpenemyhp); 

    ... 


    ... 

    function 
    fight(charhpenemyhp

    alert(charhp); 
    alert(enemyhp); 

    PS: Klappt jezt bei mir ^^ Danke

  7. #7
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.678

    AW: Wert definiert, Fehlerkonsole sagt undefined...

    Sieht auch viel besser aus und ist viel leichter zu warten.

Ähnliche Themen

  1. Wo finde ich die Fehlerkonsole?
    Von kkapsner im Forum JavaScript-FAQ
    Antworten: 12
    Letzter Beitrag: 09-09-2016, 07:39
  2. Verhalten der Firefox Fehlerkonsole
    Von wingedFish im Forum JavaScript
    Antworten: 7
    Letzter Beitrag: 13-07-2011, 16:31
  3. Fehlerkonsole für IE
    Von ToM80 im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 11-11-2007, 15:45
  4. Email-Script sagt Email versendet, GMX sagt: keine Email angekommen
    Von jeko im Forum Serverseitige Programmierung
    Antworten: 13
    Letzter Beitrag: 23-07-2004, 18:45

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •