Keresés
Hírlevél
 
Kiemelt témák
»Hogyan védjem meg a portálomat?
»Google wave
»Assembly :: röviden
Állás/munka
»IPhone App elkészítése
»PHP Fejlesztőt keresünk Miskolcon!
»Profi sitebuildert keresünk projekt alapon
»PHP állás azonnali belépéssel Budaörsön
»PHP programozó munkát vállal
» több téma
Tudástár
?Php oldal sebessége.
Több adat kiírása.
?Flash-XML kommunikáció
?Eseménykezelés, form és usercontroll kapcsolat
?Javascript űrlapok
?Adatok táblába írás után kód van ékezet helyett
?C# progira skin
PHP-ban az if nem fut le
?Datagrid frissítése vb .net
?C# Linq"Sql Insert Sequence
?Visual basic - goto
Mi az a __nonnull() ???
?Bibrálás Nokia 3720-ban J2ME-vel
*Child class visible vagy sem?
*JAVA event a JPANEL-hez
» több téma
Társalgó
»Clipper kontra XP
»Melyik főiskola vagy egyetem?
»Programozás Nokia 3720c-2-re
»HTML szerkesztő
»Weblap véleményezés
»"Márió" jellegű játék írása pascal nyelven
»Windows Mobile programozás egyszerű programmal
»Html oldal küldése outlookkal
»Lelkesítő topic
»Javascript forrás visszaalakítása
» több téma
ASP  |  C#  |  C++  |  CSS  |  Delphi  |  Flash  |  HTML  |  Java  |  JavaScript  |  Pascal  |  Perl  |  PHP  |  Python  |  Visual Basic  |  Visual C++  |    »    

Tudástár

»

Ajaxos file betöltése utána alert

»

Ajaxos file betöltése utána alert

nyitotta: sDa^, idő: 2010.02.08., moderátor: moderator
  Értesítés változás esetén Felvétel kedvencekhez Küldés emailben Nyomtatható verzió

Kategóriák:Programozási nyelvek » JavaScript

Sorrend:
Időzóna:
Blokkméret:
Ü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?

Köszönöm előre is!
Üdv,
sDa^
Hogy néz ki az ajaxos js?

Írasd ki az ajax.pics_vote.php-ban ha sikeres volt a szavazás, "Y", ha nem akkor "N";

A hívás visszatérésénel pedig valami ilyesmi:

if(responseText == 'Y' )
alert('Sikeresen szavaztál');
else
alert('Már szavaztál');
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);

Egyébként igen.. Nem ártana látni azt a js-t.
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
<script type="text/javascript" src="files/spry/SpryHTMLPanel.js"></script>

2x
<body onload="vote.loadContent('ajax/ajax.pics_vote.php?kepid=11');">

3x
<div id="vote_div"></div>
<script type="text/javascript">
  var vote = new Spry.Widget.HTMLPanel("vote_div");
</script>

és így néz ki a ajax.pics_vote.php:

<?php
  include("../include/config.min.php");
  $tpl->fileOpen("ajax.pics_vote.tpl.html");

  $vote_link_1 = "javascript:vote.loadContent('ajax/ajax.pics_vote.php?kepid=".$kepid."&vote=1');";
  $vote_link_2 = "javascript:vote.loadContent('ajax/ajax.pics_vote.php?kepid=".$kepid."&vote=2');";
  $vote_link_3 = "javascript:vote.loadContent('ajax/ajax.pics_vote.php?kepid=".$kepid."&vote=3');";
  $vote_link_4 = "javascript:vote.loadContent('ajax/ajax.pics_vote.php?kepid=".$kepid."&vote=4');";
  $vote_link_5 = "javascript:vote.loadContent('ajax/ajax.pics_vote.php?kepid=".$kepid."&vote=5');";

  if (isset($_SESSION["user"]["encoded"]) && isset($_GET["kepid"]) && is_numeric($_GET["kepid"])) {
    $kepid  = Clean($_GET["kepid"]);
    if (isset($_GET["vote"]) && is_numeric($_GET["vote"])) {
      $vote   = Clean($_GET["vote"]);
      $db->sql_query("UPDATE `user_pictures` SET `szavazatok_db`=szavazatok_db+1, `szavazatok_ossz`=szavazatok_ossz+{$vote} WHERE `kepid`='{$kepid}' LIMIT 1");
      //echo "Köszönjük Szavazatod!";
      $vote_link_1 = $vote_link_2 = $vote_link_3 = $vote_link_4 = $vote_link_5 = "javascript:alert('Már szavaztál!');";
      $_SESSION["votepics"][] = $kepid;
    } else {
      if (isset($_SESSION["votepics"]) && in_array($kepid,$_SESSION["votepics"])) {
        $vote_link_1 = $vote_link_2 = $vote_link_3 = $vote_link_4 = $vote_link_5 = "javascript:alert('Már szavaztál!');";
      }
    }
  } else {
    if (isset($_GET["vote"]) && is_numeric($_GET["vote"])) {
      //echo "Ez a szolgáltatás csak regisztrált felhasználóinknak érhető el!";
    }
  }

  echo $tpl->replaceVariables("vote_alap");
?>

[szerk.]
egyébként itt egy link az oldalra:
http://www.legjobbak.com/?page=pictures&picID=11#gal
Hááát....
Lehet jobban jársz jquery-vel.

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 :\\
Kipróbáltam ezt az alert kiíratást, nekem simán megy, szerintem te írtál el valamit az ajax.pics_vote.php-ban.

Én ugyan jqueryvel csináltam, de az most úgysem játszik mivel a visszaadott szövegről van szó.

ez a php:

<?php
header('Content-Type: text/html; charset=utf-8');
print 'Ez az ajaxos szöveg.';
print '<script type="text/javascript">alert("Bumm!!!")</script>';
exit();
?>

Kattintásra ezt a szkriptet hívja le az ajax és a kapott szöveget beleteszi egy divbe. És szépen jön az alert.

próba
hmmmm :S:S:S látom.... és egyszerüen nem értem...
ránéznél erre esetleg?
teszt

teszt.php:
<?php
  echo "it works.<br />";
  echo "<script type=\"text/javascript\">alert('it works!');</script>";
?>

Köszi!
de amugy, ha megnézed, ez a test.php-d kimenete ha csak böngészőbe megnyitod:

Ez az ajaxos szöveg.
<script type="text/javascript">
  alert("Bumm!!!")
</script>
alert("Bumm!!!")
</script>

legalábbis a chrome ezt jeleníti meg :S szal nemértem:S
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;

  </script>

És lőn alert!
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! :)
Belépés
E-mail cím:
Jelszó:

RSS források
-Hírek
-Cikkek
-Fórumok
Top pontgyűjtők
»Micu1.770
»Árnyék810
»vinie530
»Frostech0440
»Riha400
»pelz350
»djjjozsi310
»stl290
»klorand250
»NevemTeve230
Hírek
»Letölthető a Mozilla Jetpack SDK első kiadása
»Saját alkalmazásboltot nyitott a Google
»Súlyos sebezhetőség minden Apache kiszolgálóban
»Natív 3D-s támogatás a legújabb Android fejlesztőkészletben
»A Windows titkos eredete
» több hír
PC Fórum hírek
»Nem boldogul az legújabb merevlemezekkel az XP és a Linux
»Átírják a Firefox licencszerződését
»Több tízezer nebuló a Microsuliban
»Sebezhető az Internet Explorer és az Opera is
»Még márciusban megjelenik az Intel nyolcmagos szerverlapkája
»Hamis Core i7 processzorokat árultak a neten
»Korábban jön a Windows 7 Service Pack 1
»Április elejétől lesz kapható az iPad
Tagi blogok
»USB
»PHP, mint sablonmotor egyszerűen
»Én és linux
»Coming out