Autor Zpráva
FantomX1
Profil
Rad by som presne vedel co to znamena v praxi ked mi JavaScript Console v Opere vyhodi chybovu hlasku
Could not convert undefined or null to object, hosi si to viem prelozit neviem kde je chyba, pretoze premenna bola predom deklarovana, a neviem ako som ju mohol chciet menit na objekt.

Jedna z chyb kde sa to prejavi je formularovy element Select, kde pri zmene jeho vybrateho indexu chcem zobrazit hodnotu vybranej moznosti pomocou tohoto kodu,

onChange="window.alert(this.options[this.seletedIndex].value);"

ale vypise mi to toto


http://localhost/CD/pridaj.php
Event thread: change
Error:
name: TypeError
message: Statement on line 1: Could not convert undefined or null to object
Backtrace:
Line 1 of script
window.alert(this.options[this.seletedIndex].value);
At unknown location
[statement source code not available]

rovnaku chybu vypisuje pri tejto casti skriptu


<script language="javascript" type="text/javascript">

var pole=new Array();
/*Tu je jasne definovane pole/*

pole[2][0][0]='stratégia';
pole[2][0][1]='2';

pole[2][1][0]='RPG';
pole[2][1][1]='2';

pole[2][2][0]='RPG';
pole[2][2][1]='2';

</script>


chybova hlaska


http://localhost/CD/pridaj.php
Inline script thread
Error:
name: TypeError
message: Statement on line 2: Could not convert undefined or null to object
Backtrace:
Line 2 of inline#2 script in http://localhost/CD/pridaj.php

var pole = new Array();
pole[2][0][0] = "stratégia";


Velmi to potrebujem zistit preco mi to vypisuje, pretoze robim jednu PHP webovu aplikaciu, s PHP tazkosti nemam, dokonca ten mi generuje JavaScript, ale JavaScript mi nejako nechce fungovat.

Dik za rady.
Oswald
Profil
U toho prvního se snažíš přistoupit k neexistující vlastnosti jako k objektu - máš tam totíž překlep (seletedIndex):

onChange="window.alert(this.options[this.selectedIndex].value);"


U drůhého - pokud není prvek v pole[2][0] inicializovaným polem nebo objektem, tak je null a ty se snažíš přečíst jeho vlastnost/prvek, jinými slovy - pokoušíš se z null udělat objekt.

JS conzole ve FireFoxu je IMHO mnohem lepší a výřečnější.
FantomX1
Profil
Diky, v tom prvom probleme bola chyba inde a to v tom ze dany element nemal nastavene value, teda mal len <option> namiesto <option value=""> s tym druhym som to medzitym nez si mi napisal skusal robit presne to co si mi napisal, teda inicializovat viacrozmerne pole
teda najprv pole=new Array();
neskor pole[2]=new Array();
a potom pole[2][0]=new Array(); ale vyhadzovalo mi to len syntax error, no skusim sa s tym pohrat a uvidim co sa da robit, inac ako spustim Javascript konzolu v Mozille Firefox? Pretoze to tam neviem najst.
FantomX1
Profil
Uz som vyriesil aj druhy problem, pri inicializovani dalsich podpoli som pouzival vzdy zase var a to bola chyba.

Teraz som sa uz konecne dostal k volaniu funkcie,



function Zmen(pol){
var a,i;
for(i=0; i<pole[pol].length; i++)
{
a=a+'<option value='+pole[pol][i][1]+'>'+pole[pol][i][0]+'</option>';
}
v=document.GetElementById('kat').innerHTML;
window.alert(v);
document.GetElementById('kat').innerHTML=a;
}



ale v tej funkcii nepozna globalnu premennu pole, ktora je definovana neskor a ktoru sme uz rozoberali. Nevies nahodou ako urobim premennu pole globalnou? Pretoze ona je uz urcena v skripte ale funkcia nevie zistit dlzku pola kedze nepozna to pole. Dik este raz.
Fred
Profil
ako spustim Javascript konzolu v Mozille Firefox? je v nástrojích
Toto téma je uzamčeno. Odpověď nelze zaslat.

0