[ 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 | 149
Bydlisko: Houston, Texas
NapísalOffline : 29.07.2009 8:46 | Overovanie pola pomocou php a AJAXu

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 | 1
Bydlisko: Presov

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 | 34
Bydlisko: Brno
NapísalOffline : 29.07.2009 15:36 | Overovanie pola pomocou php a AJAXu

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 | 1
Bydlisko: Presov

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 | 149
Bydlisko: Houston, Texas
Napísal autor témyOffline : 29.07.2009 16:11 | Overovanie pola pomocou php a AJAXu

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 | 34
Bydlisko: Brno
NapísalOffline : 29.07.2009 16:33 | Overovanie pola pomocou php a AJAXu

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 | 149
Bydlisko: Houston, Texas
Napísal autor témyOffline : 29.07.2009 17:41 | Overovanie pola pomocou php a AJAXu

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 | 34
Bydlisko: Brno
NapísalOffline : 29.07.2009 18:04 | Overovanie pola pomocou php a AJAXu

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 | 149
Bydlisko: Houston, Texas
Napísal autor témyOffline : 29.07.2009 18:44 | Overovanie pola pomocou php a AJAXu

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 | 34
Bydlisko: Brno
NapísalOffline : 29.07.2009 19:03 | Overovanie pola pomocou php a AJAXu

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 | 149
Bydlisko: Houston, Texas
Napísal autor témyOffline : 29.07.2009 19:38 | Overovanie pola pomocou php a AJAXu

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 | 34
Bydlisko: Brno
NapísalOffline : 29.07.2009 19:42 | Overovanie pola pomocou php a AJAXu

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 | 181
Bydlisko: Nitra / Bra...
NapísalOffline : 29.07.2009 21:10 | Overovanie pola pomocou php a AJAXu

Ď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 | 34
Bydlisko: Brno
NapísalOffline : 30.07.2009 9:06 | Overovanie pola pomocou php a AJAXu

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 | 149
Bydlisko: Houston, Texas
Napísal autor témyOffline : 09.08.2009 9:41 | Overovanie pola pomocou php a AJAXu

Ď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 | 34
Bydlisko: Brno
NapísalOffline : 09.08.2009 9:44 | Overovanie pola pomocou php a AJAXu

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 | 149
Bydlisko: Houston, Texas
Napísal autor témyOffline : 12.08.2009 18:03 | Overovanie pola pomocou php a AJAXu

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 | 34
Bydlisko: Brno
NapísalOffline : 12.08.2009 18:29 | Overovanie pola pomocou php a AJAXu

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 | 149
Bydlisko: Houston, Texas
Napísal autor témyOffline : 12.08.2009 18:38 | Overovanie pola pomocou php a AJAXu

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 | 34
Bydlisko: Brno
NapísalOffline : 12.08.2009 18:46 | Overovanie pola pomocou php a AJAXu

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 | 149
Bydlisko: Houston, Texas
Napísal autor témyOffline : 12.08.2009 19:48 | Overovanie pola pomocou php a AJAXu

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 | 149
Bydlisko: Houston, Texas
Napísal autor témyOffline : 13.08.2009 18:38 | Overovanie pola pomocou php a AJAXu

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 | 34
Bydlisko: Brno
NapísalOffline : 13.08.2009 18:52 | Overovanie pola pomocou php a AJAXu

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 | 149
Bydlisko: Houston, Texas
Napísal autor témyOffline : 14.08.2009 8:05 | Overovanie pola pomocou php a AJAXu

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 | 34
Bydlisko: Brno
NapísalOffline : 14.08.2009 8:40 | Overovanie pola pomocou php a AJAXu

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


 [ Príspevkov: 25 ] 


Overovanie pola pomocou php a AJAXu



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

425

10.08.2009 10:57

awtt

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

Mazanie súboru pomocou ajaxu

v JavaScript, VBScript, Ajax

2

680

11.09.2009 17:35

Unlink

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

Formulár načítaný pomocou jQuery AJAXu

v JavaScript, VBScript, Ajax

2

443

01.06.2010 12:55

Draex

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

748

25.02.2009 19:40

emer

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

tvorba XLS pomocou php

v PHP, ASP

7

1707

26.10.2009 16:00

Achtan

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

Inputs value pomocou PHP

v PHP, ASP

2

279

27.06.2013 19:53

maťo*

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

.htaccess prihlasenie pomocou PHP

v PHP, ASP

5

577

24.02.2011 19:43

camo

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

Vytvorenie Cache pomocou php

v PHP, ASP

4

673

15.02.2012 15:09

d0.0b

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

Ako tlačiť dokument pomocou PHP?

v PHP, ASP

1

620

09.07.2007 21:25

javo

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

spustenie EXE suboru pomocou PHP

v PHP, ASP

4

523

07.02.2014 13:46

neopagan

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

Upravovanie txt suboru pomocou php

v PHP, ASP

4

646

14.01.2009 6:58

JanoF

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

ZMAZANIE FORA POMOCOU PHP FUSION

v Redakčné systémy

7

550

05.10.2007 13:28

fanthomas

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

Automatické zálohy MysqlDb pomocou php

v Databázy

1

668

24.05.2011 9:29

ThePlaky

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

zlucenie 2 obrazkov pomocou php

v PHP, ASP

7

957

07.02.2011 0:08

neopagan

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

Automaticke vytvorenie subdomeny pomocou PHP

v PHP, ASP

2

1242

28.12.2009 22:08

shaggy

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

zistenie typu serveru pomocou PHP

v PHP, ASP

3

468

09.02.2011 10:33

stenley



© 2005 - 2025 PCforum, edited by JanoF