Üdv!
Sok ilyen problémát találtam már a neten, de a megoldás egyik sem volt az igazi..
Na most, az a helyezt, hogy van egy oldalam, ahol van egy ajax-os login rész.
és van egy ilyen tipikus 5 csillagos ajax-os szavazó rész...
Addig nem lehet szavazni, amig nem vagy belépve...
oké.. beléptél..
a szavazó csillagok linkjei minden esetben ugyanazok logintől függetlenül és mindig mikor kattint akkor vizsgálja a program, hogy érvényes-e a szavzás avagy sem. ez így tökéletesen müködik, viszont ha "a szavazás sikeres volt", vagy a "már szavazott" feliratot alertben kéne megjeleníteni.. mert a sima echo-hoz nincs elég hely. de ha csak simán az ajax.pics_vote.phpból ( ez a szavazást feldolgozó ajax-os file ) dobok egy alert-et nem müködik.. nem fut le.. probáltam createelement-el, innerhtml-el, de nem müködik...
Olvastam már pár ilyen topicot de egyikben sem találtam egyértelmü választ vagy ha volt akkor jquery-s volt. nem szeretnék jqueryzni, nem szeretném emiatt jquerysíteni az oldalt... biztos meglehet oldani anélkül is. Ebben szeretném a segítségetek kérni, hogy miként lehetne ezt megvalósítani?
Akkor már egyszerűbb, ha 'ajax.pics_vote.php-ban' azt íratja ki Y/N helyett, hogy Sikeresen szavaztál/Már szavaztál, az oldalon pedig alert(ResponseText);
nos igazábol azért akartam jquery nélkül megoldani a dolgot mert spry-t használok
ez az sprynak az idevágó file-ja ami a főoldalba van belehívva: SpryHTMLPanel.js
és a főoldalban így néz ki az ide vágó dolog:
1x
De ha ezzel akarod folytatni, akkor valami olyasmi segíthet, hogy az ajax.pics_vote.php-ba beillesztesz egy script tag-et a kiíratás helyére:
if (isset($_GET["vote"]) && is_numeric($_GET["vote"])) { echo "<script type="text/javascript">alert('csak regisztráltaknak')</script>" }
Kiíratod a template motor kiíratási szabályainak megfelelően a <script> tag-et és működnie kellene.
Amúgy nem leszólásként, de létezik ilyenre szebb megoldás is, mint hogy az ajax visszaadja az egész szavazó cucc html-ét. Az inline onclick="javascript:vote_loadContent..." dolgokról nem is beszélve.
sharq:
Ha csak egy nyelven fut a dolog, akkor igazad van, tényleg egyszerűbb.
Csak én alapból mindig felkészítem az oldalaimat több nyelvre és a js betölt onload-ra egy, az adott nyelvnek megfelelő nyelvi fájlt és a abból vesz minden szöveget, pl. alert(langfile['vote_ok'])
az a baj, hogy az egész minden eddig spry-os benne és nem szeretném már kavargatni az ilyen külsö könyvtárakat :\
egyébként:
De ha ezzel akarod folytatni, akkor valami olyasmi segíthet, hogy az ajax.pics_vote.php-ba beillesztesz egy script tag-et a kiíratás helyére:
if (isset($_GET["vote"]) && is_numeric($_GET["vote"])) {
echo "<script type="text/javascript">alert('csak regisztráltaknak')</script>"
}
valamint:
de ha csak simán az ajax.pics_vote.phpból ( ez a szavazást feldolgozó ajax-os file ) dobok egy alert-et nem müködik.. nem fut le.. probáltam createelement-el, innerhtml-el, de nem müködik...
szal köszi az ötletet de igazábol már probáltam és nemmegy :\\
Sose használtam ezt a spry-os cuccot, de most belenéztem:
SpryHTMLPanel.js 100. sorától:
// Global switch that decides whether or not HTMLPanels execute
// script embedded within HTML fragments, after the fragment is inserted
// into the DOM. If false, no HTMLPanel will execute any script embedded
// within an HTML fragment.
Spry.Widget.HTMLPanel.evalScripts = false;
Hohó, mondom magamnak! teszt.html-t piszkálva:
<div class="" id="vote_div"></div> <script type="text/javascript"> var vote = new Spry.Widget.HTMLPanel("vote_div"); Spry.Widget.HTMLPanel.evalScripts = true;
bakkker.... igazad van.....
én ezt mindig így láttam:
var vote = new Spry.Widget.HTMLPanel("vote_div", { evalScripts: true });
de sosem tudtam miaz pedig most, hogy belegondolok annak a jelentésébe is, hogy "eval - scripts" így mostmár tiszta :\ figyelmetlen voltam :\
köszönöm szépen! :)