Kezdőoldal » Számítástechnika » Weblapkészítés » Javascript hibaüzenet: "Uncaug...

Javascript hibaüzenet: "Uncaught ReferenceError: szöveg is not defined", mi a gond?

Figyelt kérdés

AJAX segítségével ezt küldöm el a javascriptnek:

echo "<th id='$id' onclick='terkep($id, $x, $y, szöveg)'><p id='$id'>$on</p></th>";

Majd JS-sel ez a funkcióval:

function terkep(a, x, y, c) {

document.getElementById(a).innerHTML = c + " + " + y;

}

iratnám ki, de ez a hibaüzenet fogad engem:"Uncaught ReferenceError: szöveg is not defined".

Az "y" változót probléma nélkül kiírja, ha nincs ott a "c".


2015. júl. 12. 13:18
 1/7 anonim ***** válasza:
A szöveg változó nincs definiálva. Egyébként változónevekben nem használunk ékezetet. Még ha a nyelv adna is rá lehetőséget, akkor sem, mert csak a baj van velük.
2015. júl. 12. 13:37
Hasznos számodra ez a válasz?
 2/7 A kérdező kommentje:

A szövg jelen esetben nem változó hanem szöveg. 

Na de ha oda egy változót teszek, akkor ugyanúgy van hibaüzenet.

De a php oldalon definiálva van, míg a Js-ben a function a zárójel után be van írva.

2015. júl. 12. 13:56
 3/7 anonim ***** válasza:
Ha szöveg, akkor idézőjelbe kell tenni. Az onclick megadásánál az aposztrófot cseréld ki dupla idézőjelre, a szöveg szót pedig tedd aposztrófok közé!
2015. júl. 12. 14:01
Hasznos számodra ez a válasz?
 4/7 anonim ***** válasza:

Ha a "szöveg" egy karakterlánc, akkor írd így:

echo "<th id=\"$id\" onclick=\"terkep('$id', $x, $y, 'szöveg')\"><p id=\"$id\">$on</p></th>";


A $id változót - mivel az is egy karakterlánc - aposztrófok közé raktam.

2015. júl. 12. 14:03
Hasznos számodra ez a válasz?
 5/7 anonim ***** válasza:

echo '<th id="'.$id.'" onclick="terkep('.$id.', '.$x.', '.$y.', \'szöveg\')"><p id="'.$id.'">'.$on.'</p></th>';


Ne szokd meg hogy változót csak úgy benyomsz a szövegbe, mert szerver verzió és beállítás függő hogy hol milyen változót tudsz így alkalmazni.

Pl. gyakori hogy tömböt nem engednek így.


Plusz és aposztrof -ot javaslom, idézőjelek helyett.

Így pl. nem lesz abból gond ha jQuery -t használsz és egy $("#id") -t adsz meg pl. onclick eseménykor.

(volt egy szerencsétlen ismerősöm aki ez miatt szenvedett)

2015. júl. 12. 15:45
Hasznos számodra ez a válasz?
 6/7 anonim ***** válasza:

Üzenet

-----------------------------------------

Helló!


Megfogadtam a tanácsodat, és már úgy tettem be a változókat, ahogy ajánlottad, de jelenleg is ugyanaz a probléma.

A kódban a hibát a <html> sorába írja, de ott ezen a tagen kívül nincsen más.

Jelenleg így küldi a változókat az oldalnak:

echo '<th id="'.$id.'" onclick="terkep('.$id.', '.$on.', '.$x.', '.$y.')"><p id="'.$id.'">'.$on.'</p></th>';


És így fogadja:


function terkep(a, c, x, y) {

document.getElementById(a).innerHTML = c;

}


És a hibaüzenet mindig a kiírja a "c" változó értékét, hogy azt nem definiáltam.

Van esetleg valami ötleted?

Köszönöm előre is a válaszod!


-----------------------------------------


Továbbra is az a gond, hogy JS szinten nem jó.

$y egy szöveg, tehát azt aposztróf vagy idézőjel közé kell rakni a HTML kimenetben.

Most igaz a PHP -ban aposztrófok közt van, de az csak a string hozzá fűzése PHP -ban.


Helyesen ez agy nézne ki:

echo '<th id="'.$id.'" onclick="terkep(\''.$id.'\', \''.$on.'\', \''.$x.'\', \''.$y.'\')"><p id="'.$id.'">'.$on.'</p></th>';

2015. júl. 12. 20:32
Hasznos számodra ez a válasz?
 7/7 A kérdező kommentje:
Nagyon szépen köszönöm, működik!
2015. júl. 13. 08:44

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!