Javascript hibaüzenet: "Uncaught ReferenceError: szöveg is not defined", mi a gond?
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".
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.
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.
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)
Ü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>';
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!