Autor Zpráva
ch4rli3
Profil
Zdravím,
mám takovýto problém...potřebuju pomoci JQuery a Ajaxu po kliknutí na odkaz nebo při odeslání formuláře nastavit session a uložit data do databáze. V tomto problém nemám, vypadá to takto:

	function randomString(length) {
           var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz'.split('');
           if (! length) {
              length = Math.floor(Math.random() * chars.length);
           }
          var str = '';
          for (var i = 0; i < length; i++) {
            str += chars[Math.floor(Math.random() * chars.length)];
          }
          return str;
        }
		
	$(document).ready(function() {
	   $("a" & "#submit").click(function() {
	   var str = randomString(64);
	   $.post("setSession.php",{"q":str});
		
    });


Toto funguje skoro jak má. Nastaví to sessionu...mám testovací stránku kde mám odkaz na index2.php a jednoduchý formulář s action index2.php...index2.php vyčte sessionu, vypíše ji a zničí ji. Problém je ten že když mám testovací stránku načtenou v prohlížeči třeba minutu nebo 5 tak po kliknutí na odkza nebo potvrzení formuláře my vyhodí index2.php chybu, že daná sessiona není nastavená. Zkoušel jsem si nastavit i delay ve skriptu, že třeba stránka přeskočí dřív, než na pozadí volaný skript nastaví sessionu, ale ni to nepomohlo. NEvíte čím by to mohlo být? Díky za všechny rady.
Chamurappi
Profil
Reaguji na ch4rliho3:
"a" & "#submit"
Doporučuji zopáknout základy JS (operátory), protože tohle vyjde nula. Předpokládám, že z $(0).click(…) nic moc funkčního nevyleze, ale buď to není příčina popisovaného problému se session, nebo sis nevšiml, že to kliknutí vůbec nezachytáváš…
ch4rli3
Profil
Pokud bych to kliknutí nezachytil, tak by to ani nenastavilo session...ke všemu jsem dohledal, že toto co tam mám je funkční řešení pokud chceš přidat jednu jquery event pro více elementů viz Zde
Chamurappi
Profil
Reaguji na ch4rliho3:
toto co tam mám je funkční řešení pokud chceš přidat jednu jquery event pro více elementů
Není. Ampersand je v javascriptu bitový AND.
ch4rli3
Profil
Chamurappi:
Dobře, beru uznávám, ale přesto, pokud je to tedy bitový and, jak mi doporučuješ spojit ty elementy? protože pokud tam dám bitový or nebo pokud je spojím dle jiného návodu, tak mi to funguje jen a pouze na odkaz ale na submit již ne
ch4rli3
Profil
Takže upravil jsem lehce kód teď by to nemělo být syntakticky špatně:

$(document).ready(function() {
		$("a").add(":submit").click(function() {
		      var str = randomString(64);
		      //alert(str);    
            $.post("setSession.php",{"q":str});
		
    });
		

		return false;	    
		});


nicméně můj problém to neodstranilo
Ugo
Profil
sakra proc to neudelas normalne :D
Chamurappi
Profil
Reaguji na ch4rliho3:
viz Zde
Hm, závisláci na jQuery často neumějí programovat.
Tvůrci jQuery také nejsou moc prozíraví, když $(0) berou jako ekvivalent k $(document) — ve zdrojáku v příspěvku #1 nechytáš kliknutí na odkazy a na #submit, ale kliknutí kamkoliv v dokumentu.

jak mi doporučuješ spojit ty elementy?
Argumentem je selektor, fungují u něj podobná pravidla jako v CSS… jak spojuješ elementy v CSS?
I kdyby to nešlo zapsat v rámci jednoho jQuery-selektoru, nic ti nebrání použít dva separátní příkazy, kterým bys předal do clicku stejnou funkci. Na to opravdu stačí umět základy JS.

pokud tam dám bitový or
Tak je to také nula. Bitové operátory nedávají smysl na řetězcích. Nikdy. Nikde.
ch4rli3
Profil
Ugo:
sakra proc to neudelas normalne :D
Tak to bych rad vedel jak to myslis normalne? Co si pod tim predstavujes?
ch4rli3
Profil
Takže mám další postup v řešení problému. Dal jsem si aby reagoval jen na odkazy (abych vyloučil chybné spojování elementů). Do skriptu, který má nastavit session jsem si přidal operaci která ukládá nějaká data do DB. A zjistil jsem následující. Že když kliknu na odkaz hned po načtení stránky tak se volání provede a vše běží jak má, ale v okamžiku kdy nechám stránku chvíli "stát" a poté kliknu na odkaz, tak se volání skriptu na nastavení sessiony neprovede. Tak teď jsem z toho úplně v háji. Netušíte někdo proč to tak je?
Chamurappi
Profil
Reaguji na ch4rliho3:
Máš chybu někde na straně serveru. Buď si něčím session zničíš, nebo má nastavenou nízkou životnost.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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

0