» »

[PHP] no refresh

[PHP] no refresh

Miko55 ::

Mene zanima,kako se naredi da se ob določenemu dogodku ne refresha stran?

Npr. da nekaj napišeš v input in ti brez refresha preveri če je pravilno ali napačno, da ko nekaj nekaj klikneš in na podlagi napačno/pravilno zgodi dogodek ?

amacar ::

Z ajaxom.

Letalec ::

Tako kot si že dobil odgovor. PHP teče na strani serverja. Če hočeš poganjati kodo na strani klienta (v brskalniku) pa moraš na vrhu PHPja uporabiti še javaskripto. Če si hočeš dodatno komplicirati življenje, pa še pristop ajax.

DC- ::

Za jquery narediš zadaj ajax poizvedbo v php fajt

Jquery ima tudi nekaj kull pluginov za validate

mirancar ::

na elementih kot je input imaš evente: onclick, onchange, onfocus, onblur, onkeyup, onkeydown,...
z tem kličeš javascript funkcijo, če rabiš dobit kak podatek iz serverja se kliče še ajax request do php-ja
server ni zdravo klicat za vsako bedarijo, imej v mislih da narediš čim manj requestov na server. kot primer če delaš onkeydown/onkeyup, lahko uporabiš še clearTimeout in setTimeout od javascripte

alexa-lol ::

http://jsfiddle.net/AHS2L/

Uporaba jQuerja in plugina throttle/debounce ... efektivno 4 vrstice JS in HTML .. output je v console, tam lahko npr. kličeš tudi z AJAXom kaj, lahko narediš npr. neko zastavico da se zahtevek ne izvede če še ni odgovora iz strežnika etc..

Miko55 ::

Hvala za odogovore,bom pogledal ajax po internetu ker v sql o tem nismo nič govorili :/ GG

vorantz ::

ajax nima veze z sqlom
zato ne bi melo smisla, da bi tam o tem govorili

alexa-lol ::

AJAX je samo način kako ti strežnik vrne vsebino na stran ne da bi se ob tem ponovno naložila celotna stran.

V tvojem primeru validacijo inputa. Ali je nek string pravilen email naslov lahko preveriš v brskalniku, za to ne potrebuješ vprašati strežnika (Validacija email naslove z uporabo JavaScripta na klintu tj. v brskalniku ). Če pa recimo hočeš preveriti ali je uporabniško ime še prosto pa uporabiš AJAX tako da strežniku pošlješ vneseno uporabniško ime, na strežniku se izvede poizvedba in strežnik vrne rezultat - ali up. ime že obstaja v bazi ali pa ne.

Tisto kar sem jaz naredil v fiddlu je to da se poizvedba izvede 1000ms po tem ko uporabnik zaključi tipkanje. To je uporabno ker ne obremenjuješ strežnika po nepotrebnem.

Recimo da bi vnesel "Miko55". Če ne bi uporabil plugina bi se izvedlo 6 poizvedb
1. M
2. Mi
3. Mik
4. Miko
5. Miko5
6. Miko55

Pri mojem fiddlu gre samo za majhno optimizacijo poizvedb. Seveda če uporabnik čez 5 sekund doda nizu "Miko55" še eno "5" potem se ponovno izvede poizvedba. Gre samo za to da ljudje ponavadi tipkamo hitreje in za vsak vnešen znak ne pošiljaš poizvedbe na strežnik.

MrStein ::

Mimogrede: validacija email naslova je bedarija na kvadrat.

Pošlješ mail na podani naslov in če prispe, je email validen.
Vse drugo je bedarija na kubik (in complete waste of time, and money).

(izjema je nekaj preprostih kontrol, ki uporabnika opozorijo, recimo če manjka @)
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

Zgodovina sprememb…

  • spremenil: MrStein ()

eniLS ::

MrStein, saj kako pa drugače validiraš email naslov v formu? Preveriš, če je znak @, če je za @ nekaj.nekaj, ...
Tole nikakor ni bedarija, ker verjami, da v polje za email vpisujejo dobesedno svašta, potem pa imaš v bazi kup neuporabnik vnosov, kjer bi moral biti email.

Mavrik ::

eniLS je izjavil:

MrStein, saj kako pa drugače validiraš email naslov v formu? Preveriš, če je znak @, če je za @ nekaj.nekaj, ...


Obstoj znaka @ in (morda) pike za njo je največ kar delaš, ker boš z vsem ostalim dejansko ljudem preprečil dostavo emailov (btw, nekdo@si je popolnoma veljaven email naslov).
The truth is rarely pure and never simple.

MrStein ::

eniLS je izjavil:

MrStein, saj kako pa drugače validiraš email naslov v formu? Preveriš, če je znak @, če je za @ nekaj.nekaj, ...
Tole nikakor ni bedarija, ker verjami, da v polje za email vpisujejo dobesedno svašta, potem pa imaš v bazi kup neuporabnik vnosov, kjer bi moral biti email.

Validiraš jih in če "padejo", jih zbrišeš, če že toliko motijo.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

eniLS ::

Ja, ampak veliko bolje je uporabnika že v vazi vpisovanja emaila "motivirati", da vpiše pravilen email. Saj ko imaš enkrat napačnega boš težko dobil pravega, če gre za prijavo na e-novice ali podobno.
Že, da pobrišeš ostalo, ampak izgubljen email, je lahko izgubljena stranka. :)

alexa-lol ::

Fora je da dosti ljudi ne loči med email naslovom, URI in pa uporabniškim imenom.

Recimo imajo gmail in uporabniško ime lojze ter pripadajoči mail lojze@gmail.com .
Ker se ponavadi v gmail prijavijo samo z lojze (brez @gmail.com) se lahko zgodi da bodo za kakšen newsletter vtipkali samo lojze brez @gmail.com in bodo mislili da je vse uredu.

Za robne primere, ki bodo testirali implementacijo preverjanja je pa vseeno če je test@whitehouse.washington valid.

Mavrik ::

eniLS je izjavil:


Že, da pobrišeš ostalo, ampak izgubljen email, je lahko izgubljena stranka. :)


A to da pa izgubiš stranko, ker ji ne pustiš registracije z njenim (veljavnim) emailom pa ni problem? :)
The truth is rarely pure and never simple.

eniLS ::

Se še ni zgodilo, da funkcija, ki jo uporabljam, nebi skozi spustila veljavnega emaila. Pa je šlo skozi njo že na stotisoče mailov. :)
Za lastno evidenco beležim vse vnose, tudi tiste nepravilne, da imam pregled nad vsem.

AndrejS ::

Ko imaš enkrat neki newsletter na strani in preko 10k strank se končno zaveš kakšne bedarije eni vpisujejo namesto email naslova !

eniLS ::

AndrejS, točno to je moj point tukaj.. :) Se popolnoma strinjam s tabo.

BigWhale ::

alexa-lol je izjavil:

Uporaba jQuerja in plugina throttle/debounce ... efektivno 4 vrstice JS in HTML .. output je v console, tam lahko npr. kličeš tudi z AJAXom kaj, lahko narediš npr. neko zastavico da se zahtevek ne izvede če še ni odgovora iz strežnika etc..


Torej, ce smo natancni je tole efektivno jQuery + plugin + tvoje stiri vrstice.

alexa-lol ::

BigWhale je izjavil:

alexa-lol je izjavil:

Uporaba jQuerja in plugina throttle/debounce ... efektivno 4 vrstice JS in HTML .. output je v console, tam lahko npr. kličeš tudi z AJAXom kaj, lahko narediš npr. neko zastavico da se zahtevek ne izvede če še ni odgovora iz strežnika etc..


Torej, ce smo natancni je tole efektivno jQuery + plugin + tvoje stiri vrstice.


ja..
večina strani ma že itak jQuery... throttle/debounce plugin je pa 0.7kb minifed


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

JS frameworks: knockoutJS, angularJS, react, ...

Oddelek: Programiranje
416803 (3648) kuall
»

PHP POST težava

Oddelek: Programiranje
121411 (1277) DeeJay
»

[javascript] XML problem

Oddelek: Programiranje
132454 (2294) Kocka
»

Velikost internetne strani

Oddelek: Programiranje
142887 (2444) RockyS
»

Download vsebine strani s JS

Oddelek: Izdelava spletišč
472371 (1669) MrBrdo

Več podobnih tem