Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 25 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Overovanie pola pomocou php a AJAXu

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149
Bydlisko: Houston, Texas
Príspevok NapísalOffline : 29.07.2009 8:46

Ahojte, povedzme že mám klasické input pole kde niečo napíšem a kliknem vedľa (onblur) sa mi povedzme pod tým zobrazí div v ktorom sa spustí určitá php funkcia,

proste potrebujem aby sa vždy keď kliknem vedľa toho môjho pola aby sa v tom dive spustila tá funkcia, s parametrom toho čo mam v poli napísané

a povedzme kým sa php skript nenačíta tak bude písať Loading
pretože tá funkcia sa bude vykonávať určitu dobu


Ďakujem :D


Offline

Užívateľ
Užívateľ
Overovanie pola pomocou php a AJAXu

Registrovaný: 28.06.09
Prihlásený: 18.12.09
Príspevky: 78
Témy: 1
Bydlisko: Presov
Príspevok NapísalOffline : 29.07.2009 13:22

Odporucam pouzit nejaky framework napr. prototype (jquery, mootols atd.):

http://www.prototypejs.org/learn/introduction-to-ajax

ak tomu inputu das id tak potom je lahke k tomu pristupovat....

napr.

<input name="in" id="in" value ="xxx" />

ak das v JS alert($F('in')) malo by ti vypisat 'xxx' resp. co tam zmenis.







_________________
Blogujem teda zijem. Link v profile.
Offline

Čestný člen
Čestný člen
Overovanie pola pomocou php a AJAXu

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 29.07.2009 15:36

Neodporucam pouzit ziaden framework, nic sa nenaucis a bude sa to vykonavat pomalsie.
Proste tomu inputu pridelis onblur="funkcia()", pricom funkcia bude obsahovat:
  • na zaciatku vytvori box s napisom Loading
  • spusti normalny http request GET metodou
  • ked bude readyState==4, teda vsetko prebehlo, obsah toho boxu sa nahradi responseText-om, teda tym, co vypisala ta php funkcia. Pokial nema ta fcia vypisovat nic, ten box sa proste odstrani (a v podstate vtedy moze http request prebehnut HEAD metodou, netreba GET)

Mozem sa na to pozriet a potom ti sem hodim kod, ak to nevies spravit sam.


Offline

Užívateľ
Užívateľ
Overovanie pola pomocou php a AJAXu

Registrovaný: 28.06.09
Prihlásený: 18.12.09
Príspevky: 78
Témy: 1
Bydlisko: Presov
Príspevok NapísalOffline : 29.07.2009 15:58

Kód:
Neodporucam pouzit ziaden framework, nic sa nenaucis a bude sa to vykonavat pomalsie.


Suhlas, cez framework je to ale podstatne jednoduchsie a dramaticky pomalsie zase nie :)







_________________
Blogujem teda zijem. Link v profile.
Offline

Užívateľ
Užívateľ
Overovanie pola pomocou php a AJAXu

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149
Bydlisko: Houston, Texas
Príspevok Napísal autor témyOffline : 29.07.2009 16:11

no tak vieš mi to nejak napísať?

lebo povedzme že ja potrebujem vykonať najakú funkcu ktorej výsledkom bude text

teda povedzme echo funkcia(hodnota);


Offline

Čestný člen
Čestný člen
Overovanie pola pomocou php a AJAXu

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 29.07.2009 16:33

Kód:
<!DOCTYPE html>
<title></title>
<meta charset=utf-8>
<style>
#loading { /*tu si mozes box s loadingom a neskor s vysledkom fcie lubovolne nastylovat*/ }
</style>
<script>
if (!window.XMLHttpRequest)
{
   XMLHttpRequest = function()
   {
      return new ActiveXObject('Microsoft.XMLHTTP');
   }
}
function ajax()
{
   if (!document.getElementById('loading'))
   {
      var div = document.createElement('div');
      div.setAttribute('id', 'loading');
      div.innerHTML = 'Loading';
      document.body.appendChild(div);
   }
   else
   {
      var div = document.getElementById('loading');
      div.innerHTML = 'Loading';
   }
   var xhr = new XMLHttpRequest();
   xhr.open('GET', 'tvojphpskript.php', true);
   xhr.send(null);
   xhr.onreadystatechange = function()
   {
      if (xhr.readyState == 4)
      {
         div.innerHTML = xhr.responseText;
         /* ten Loading ti preblikne mozno dost rychlo, podla toho, co tam mas v tom php skripte, tak si mozes nastavit setTimeout */
      }
   }
}
</script>
<input type=text onblur="ajax()">


jozef.rusnak - su tu taki uzivatelia, co s jQuery toho dokazu dost vela, ale obycajny javascript nepoznaju prakticky vobec. Preto nerad odporucam frameworky.


Offline

Užívateľ
Užívateľ
Overovanie pola pomocou php a AJAXu

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149
Bydlisko: Houston, Texas
Príspevok Napísal autor témyOffline : 29.07.2009 17:41

ok toto ide, a teraz ako do toho dostanem svoje parametre?
potrebujem tam dostať jedno číslo, vegenerované php kódom, povedzme premennu $cislo
a to čo užívateľ vložil do toho poľa, ako na to?

to $cislo by asi šlo aj takto
Kód:
xhr.open('GET', 'tvojphpskript.php?cilso=<?php echo $cislo; ?>', true);

ale ten text by som radšej posielal cez post nie GET

dúfam že chápeš


Offline

Čestný člen
Čestný člen
Overovanie pola pomocou php a AJAXu

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 29.07.2009 18:04

Kód:
   var xhr = new XMLHttpRequest();
   xhr.open('POST', 'tvojphpskript.php', true);
   xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
   if (xhr.overrideMimeType)
   {
      xhr.setRequestHeader('Connection', 'close');
   }
   xhr.send('cislo='+encodeURIComponent('nejaka hodnota'));


Offline

Užívateľ
Užívateľ
Overovanie pola pomocou php a AJAXu

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149
Bydlisko: Houston, Texas
Príspevok Napísal autor témyOffline : 29.07.2009 18:44

ok to funguje
ale ešte potrebujem to čo je v tom poli odoslať do skriptu

Kód:
<!DOCTYPE html>
<title></title>
<meta charset=utf-8>
<style>
#loading { /*tu si mozes box s loadingom a neskor s vysledkom fcie lubovolne nastylovat*/ }
</style>
<script>
if (!window.XMLHttpRequest)
{
   XMLHttpRequest = function()
   {
      return new ActiveXObject('Microsoft.XMLHTTP');
   }
}
function ajax()
{
   if (!document.getElementById('loading'))
   {
      var div = document.createElement('div');
      div.setAttribute('id', 'loading');
      div.innerHTML = 'Loading';
      document.body.appendChild(div);
   }
   else
   {
      var div = document.getElementById('loading');
      div.innerHTML = 'Loading';
   }
   var xhr = new XMLHttpRequest();
   xhr.open('POST', 'tvojphpskript.php', true);
   xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
   if (xhr.overrideMimeType)
   {
      xhr.setRequestHeader('Connection', 'close');
   }
   xhr.send('cislo='+encodeURIComponent('nejaka hodnota'));
   xhr.onreadystatechange = function()
   {
      if (xhr.readyState == 4)
      {
         div.innerHTML = xhr.responseText;
         /* ten Loading ti preblikne mozno dost rychlo, podla toho, co tam mas v tom php skripte, tak si mozes nastavit setTimeout */
      }
   }
}
</script>
<input type=text onblur="ajax()">


Offline

Čestný člen
Čestný člen
Overovanie pola pomocou php a AJAXu

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 29.07.2009 19:03

Odoslat "do skriptu" mozes jedine vypisanim (echo) v tom php skripte, to vypisane mas v xhr.responseText.
Mozno, keby si vypisal PHPckom nieco taketo:
Kód:
{prvyindex: 'prvahodnota', druhyindex: 'druhahodnota'}
tak by si mohol pomocou
Kód:
eval('var pole='+xhr.responseText+';');
vytvorit to javascriptove pole.
Osobne by som ale predavanie akychkolvek dat z PHP do JS riesil tak, ze PHPckom vygenerujem (well-formed) XML subor, ktorym by sa dalo javascriptom vyberat data klasicky DOMom. Akurat by si nepouzil xhr.responseText, ale xhr.responseXML.


Offline

Užívateľ
Užívateľ
Overovanie pola pomocou php a AJAXu

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149
Bydlisko: Houston, Texas
Príspevok Napísal autor témyOffline : 29.07.2009 19:38

no dobre ale ako do toho skriptu to teda dám?
proste ako mam
xhr.send('cislo='+encodeURIComponent('nejaka hodnota'));

tak potrebujem odoslať ešte jednu hodnotu a to tú čo je v mojom poli ( v tom inpunte)
lebo ja JS nechápem, ja som skôr na php takže prosím skús mi to spraviť

Ďakujem :)


Offline

Čestný člen
Čestný člen
Overovanie pola pomocou php a AJAXu

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 29.07.2009 19:42

Rovnako ako ked spajas parametre v query stringu.
Kód:
xhr.send('premenna1='+encodeURIComponent('hodnota1')+'&premenna2='+encodeURIComponent('hodnota2'));


Offline

Užívateľ
Užívateľ
Overovanie pola pomocou php a AJAXu

Registrovaný: 26.12.06
Prihlásený: 16.11.19
Príspevky: 3971
Témy: 181
Bydlisko: Nitra / Bra...
Príspevok NapísalOffline : 29.07.2009 21:10

Ďuri píše:
/* ten Loading ti preblikne mozno dost rychlo, podla toho, co tam mas v tom php skripte, tak si mozes nastavit setTimeout */


já by som sa chcel opýtať, či sa nejako dá zistiť, ako dlho trvalo to spracovanie, aby som nastavil ten timeout iba v prípade, že preberanie výsledku trvá fakt krátky čas...

hádam som to nenapísal jak mongol :D







_________________
Sorry za prelkepy
Offline

Čestný člen
Čestný člen
Overovanie pola pomocou php a AJAXu

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 30.07.2009 9:06

Jasne, predtym, ako vytvoris objekt XMLHttpRequest-u, si zapis do nejakej premennej aktualny cas v mikrosekundach (google javascript microtime) a do druhej premennej zapises aktualny cas vnutri tej vetvy if (xhr.readyState == 4). Potom to len od seba odcitas a podla moznosti nastavis setTimeout.


Offline

Užívateľ
Užívateľ
Overovanie pola pomocou php a AJAXu

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149
Bydlisko: Houston, Texas
Príspevok Napísal autor témyOffline : 09.08.2009 9:41

Ďuri píše:
Rovnako ako ked spajas parametre v query stringu.
Kód:
xhr.send('premenna1='+encodeURIComponent('hodnota1')+'&premenna2='+encodeURIComponent('hodnota2'));


ok ale ja nechapem ako dosiahnem to že v encodeURIComponent('hodnota2') bude to čo mam napísané v tom poli


Offline

Čestný člen
Čestný člen
Overovanie pola pomocou php a AJAXu

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 09.08.2009 9:44

Viacerymi sposobmi...
Kód:
document.getElementById('id-inputu').value

Kód:
document.forms.nameformu.nameinputu.value


Offline

Užívateľ
Užívateľ
Overovanie pola pomocou php a AJAXu

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149
Bydlisko: Houston, Texas
Príspevok Napísal autor témyOffline : 12.08.2009 18:03

ahoj, ešte by som chcel vedieť jednu vec
nedá sa nastaviť kódovanie?

nejak ako toto
xhr.open('GET', 'tvojphpskript.php', true);
proste kódovanie...


Offline

Čestný člen
Čestný člen
Overovanie pola pomocou php a AJAXu

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 12.08.2009 18:29

Neda. Javascript odosiela a prijima obsah v takom kodovani, v akom je ulozeny subor, ktory js skript obsahuje. Najlepsie je mat _vsetko_ v UTF-8 a mas po problemoch.


Offline

Užívateľ
Užívateľ
Overovanie pola pomocou php a AJAXu

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149
Bydlisko: Houston, Texas
Príspevok Napísal autor témyOffline : 12.08.2009 18:38

a keď mam všetko v
Windows-1250? a nefunguje mi to?
nedá sa to nejak obísť?


Offline

Čestný člen
Čestný člen
Overovanie pola pomocou php a AJAXu

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 12.08.2009 18:46

Ktore znaky sa nespravne zobrazuju? Ale mozes vyskusat
Kód:
xhr.overrideMimeType("text/html;charset=Windows-1250");


Offline

Užívateľ
Užívateľ
Overovanie pola pomocou php a AJAXu

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149
Bydlisko: Houston, Texas
Príspevok Napísal autor témyOffline : 12.08.2009 19:48

okej vložil som to za
Kód:
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
a funguje, ešte potrebujem aj naopak že to čo zadám do poľa že sa odošle v Windows-1250


Offline

Užívateľ
Užívateľ
Overovanie pola pomocou php a AJAXu

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149
Bydlisko: Houston, Texas
Príspevok Napísal autor témyOffline : 13.08.2009 18:38

ok to som vyriešil tak že som si to prekonvertoval v php...

a teraz neviete mi poradiť že prečo mi to nejde na Opere a ani na IE
na FF a GoogleChrome to ide v pohode?

ale keď mam stranku v UTF-8 a nepoužijem xhr.overrideMimeType("text/html;charset=Windows-1250"); tak to ide aj v opere a aj v IE ...


Offline

Čestný člen
Čestný člen
Overovanie pola pomocou php a AJAXu

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 13.08.2009 18:52

Aha, overrideMimeType funguje iba vo Firefoxe a Safari. Stale nechapem, preco si nedas vsetko do UTF-8.


Offline

Užívateľ
Užívateľ
Overovanie pola pomocou php a AJAXu

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149
Bydlisko: Houston, Texas
Príspevok Napísal autor témyOffline : 14.08.2009 8:05

no dobre, to som vyriešil prekonverovaním vstupu aj výstupu, ale zaujíma ma
Kód:
if (xhr.overrideMimeType)
   {
      xhr.setRequestHeader('Connection', 'close');
   }


a si povedal že
Ďuri píše:
Aha, overrideMimeType funguje iba vo Firefoxe a Safari.

tak teraz neviem, ten skript mi správne pôjde len vo Firefoxe a Safari?


Offline

Čestný člen
Čestný člen
Overovanie pola pomocou php a AJAXu

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 14.08.2009 8:40

Nie, to Connection: close je riesenie nejakej chyby vo Firefoxe. A na identifikaciu, ci ide o Firefox, sa pouziva presne to overrideMimeType.


Odpovedať na tému [ Príspevkov: 25 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. pisanie do textoveho pola pomocou ajaxu

v JavaScript, VBScript, Ajax

1

384

10.08.2009 10:57

awtt Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Mazanie súboru pomocou ajaxu

v JavaScript, VBScript, Ajax

2

638

11.09.2009 17:35

Unlink Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Formulár načítaný pomocou jQuery AJAXu

v JavaScript, VBScript, Ajax

2

398

01.06.2010 12:55

Draex Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. formular cez jquery kniznicu pomocou ajaxu a diakritika

v JavaScript, VBScript, Ajax

2

709

25.02.2009 19:40

emer Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Vytvorenie Cache pomocou php

v PHP, ASP

4

630

15.02.2012 15:09

d0.0b Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. tvorba XLS pomocou php

v PHP, ASP

7

1659

26.10.2009 16:00

Achtan Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Inputs value pomocou PHP

v PHP, ASP

2

248

27.06.2013 19:53

maťo* Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. .htaccess prihlasenie pomocou PHP

v PHP, ASP

5

528

24.02.2011 19:43

camo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Automaticke vytvorenie subdomeny pomocou PHP

v PHP, ASP

2

1208

28.12.2009 22:08

shaggy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. zistenie typu serveru pomocou PHP

v PHP, ASP

3

438

09.02.2011 10:33

stenley Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. spustenie EXE suboru pomocou PHP

v PHP, ASP

4

477

07.02.2014 13:46

neopagan Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako tlačiť dokument pomocou PHP?

v PHP, ASP

1

581

09.07.2007 21:25

javo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Upravovanie txt suboru pomocou php

v PHP, ASP

4

605

14.01.2009 6:58

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. zlucenie 2 obrazkov pomocou php

v PHP, ASP

7

922

07.02.2011 0:08

neopagan Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Automatické zálohy MysqlDb pomocou php

v Databázy

1

625

24.05.2011 9:29

ThePlaky Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ZMAZANIE FORA POMOCOU PHP FUSION

v Redakčné systémy

7

518

05.10.2007 13:28

fanthomas Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra