Autor Zpráva
muflik
Profil *
Dobrý den, mám takovýto script
echo " ...
<a href='deletePage.php' onclick='if(confirm(\"Opravdu chcete položku smazat?\")){$.post(this.href, {id:$row[id]},function(data){alert(data);});}; return false;'><img src='img/silk/icons/delete.png'></a>
...";

ale php mi hází
Parse error: syntax error, unexpected '.', expecting T_VARIABLE or '$' in ... on line xx
přitom
echo " ...
<a href='deletePage.php' onclick='$.post(this.href, {id:$row[id]},function(data){alert(data);}); return false;'><img src='img/silk/icons/delete.png'></a>
...";
funguje.. nemohu přijít na to proč mi přidání confirmu napíše parse error když je to navíc JS tak by to jen nemělo fungovat ? Snažím se na to přijít ale chybu v tom nevidím neveděl by někdo? Předem moc děkuji.
Tori
Profil
muflik:
máte problém s uvozovkami a/nebo chybějícím escapováním znaku '$'.
Zdejší zvýrazňovač syntaxe taky pěkně vybarvil rozdíl mezi oběma příklady: v prvním těmi složenými závorkami výslovně určujete, že vše mezi {$ a } se má vyhodnocovat jako nějaká komplikovaná proměnná. Ve druhém případě si to PHP stroj přebere po svém - když za dolarem nenásleduje podtržítko ani písmeno, vyhodnotí ho jako řetězec.
(To jestli jde o JS nebo ne s tím nemá co dělat. PHP se zpracovává na serveru, JS u klienta. PHP stroj nezajímá, jestli na výstup jde obyčejný text, html nebo js.)
muflik
Profil *
Tori: Aha děkuji nevěděl jsem, že se musí '$' escapovat nicméně se mi teď po potvrzení confirmu neprovede ten post co předtim fungoval :( no nic necham to na ráno :-)
_es
Profil
muflik:
Mám pochybnosti, či ti jasné, kde a kedy sa vykonáva JS a kde a kedy sa vykonáva PHP.
muflik
Profil *
_es: nejdřív se pomocí php vygeneruje html spolu s js a pak ve stránce kliknu na odkaz a na pozadí se mi odešle přes ajax post s id na php script.. řikam, že bez
'if(confirm(\"Opravdu chcete položku smazat?\")){

... a
};

to funguje, zřejmě v tom bude nějaká drobnost zatim sem na ní ale nepřišel.
_es
Profil
muflik:
zřejmě v tom bude nějaká drobnost zatim sem na ní ale nepřišel.
Takže ti asi treba znova prečítať [#2], akurát že nejde o úvodzovky v PHP ale o úvodzovky v JS.
Textové reťazce sú v JS uzavreté medzi " a " alebo medzi ' a '.
Ako má teda asi JS spracovať príkaz:
confirm(\"Opravdu chcete položku smazat?\")
Prečo je premenná $row nazvaná takto divne? Je to premenná a máš ju správne definovanú? V JS nemusí mať premenná na začiatku $. Uvedomuješ si, aké id odosielaš? To $.post je použitie jQuery?
Keeehi
Profil
muflik:
Nakopíruj sem prosím tě trochu větší část kódu. Evidentně tam máš chybu v zápise. Takže to neopisuj a neupravuj, ale nakopíruj.
_es
Profil
Keeehi:
Evidentně tam máš chybu v zápise.
Evidentne je tých chýb, alebo ešte len skrytých chýb, viac.

Takže to neopisuj a neupravuj, ale nakopíruj.
Radšej nech dá odkaz na nefunkčnú stránku.
muflik
Profil *
Děkuji už to funguje, původně byla chyba v $ a pak jsem přesunul deletePage.php a zapoměl jsem změnit cestu. :-)
Joker
Profil
muflik:
php mi hází
Parse error: syntax error (…)

1. …a proto je „logicky“ dotaz v kategorii Javascript. Přesouvám do PHP.
2. Syntax error = naučit se pořádně syntaxi daného jazyka a pořádně se podívat (případně používat slušné PHP vývojové prostředí, které syntaktické chyby rovnou podtrhává)

Když chyba je „neočekávaná tečka, očekávána proměnná“, přičemž jediná tečka na daném řádku je v tom $.post, tak problém bude asi tam.
_es
Profil
Joker:
tak problém bude asi tam
Tých problémov tam je viac a ten bod 2 platí aj na JS toho kódu.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: