Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Select on change

[es] :: Javascript i AJAX :: Select on change

[ Pregleda: 2423 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Rodja_ki
Kikinda

Član broj: 297407
Poruke: 63
*.dynamic.sbb.rs.



+4 Profil

icon Select on change10.10.2013. u 08:54 - pre 128 meseci
Cao drugari :) Treba mi mala pomoc, kako da on change u select-u uhvatim value tog selekta u php promenljivu?
 
Odgovor na temu

deZio
Inđija

Član broj: 150608
Poruke: 345
*.dynamic.isp.telekom.rs.



+38 Profil

icon Re: Select on change10.10.2013. u 09:12 - pre 128 meseci
Nije mi jasno šta tačno želiš? Ne možeš pretvoriti vrednost promene selecta u PHP promenljivu jer se PHP izvršava pre nego što se prikaže stranica posetiocu, tako da kad ti se stranica prikaže, PHP više nije aktivan.

PHP kad pošalje html pretraživaču, on prestaje da se izvršava, pa samim tim i sve njegove promenljive, f-je itd. Pretraživač ima ulogu samo da taj html prikaže ispravno.

Jedino što možeš uraditi je da vrednost tog selekta nakon njegove promene pošalješ ka drugoj stranici na taj način što pozoveš submit forme u okviru koje se nalazi taj select.

Drugo rešenje je da vrednost tog selekta nakon njegove promene pošalješ ka nekoj PHP stranici putem AJAX-a.

E sad malo pojasni šta tačno želiš i koja je svrha toga, pa ti neko može i dati primer koda.
 
Odgovor na temu

Rodja_ki
Kikinda

Član broj: 297407
Poruke: 63
*.dynamic.sbb.rs.



+4 Profil

icon Re: Select on change10.10.2013. u 09:34 - pre 128 meseci
Pa treba mi da kada se izvrsi promena u select-u, da php dobije njegov value. Probao sam sa ajax-om, al mi nesto ne ide...Nisam mislio da se sve desava na istoj strani, vec mi treba vrednost iz selekta, ali mi treba prebacen u php :) U sustini, kada se desi promena u selectu, da se ode na neku stranu gde je ajax, pa se prevede u vrednost privatljivu u php i ta vrednost se vrati u pocetnu stranu, tj onu gde je select, gde bi se procesuirala ta vrednost. :) Nadam se da razumete.
 
Odgovor na temu

deZio
Inđija

Član broj: 150608
Poruke: 345
*.dynamic.isp.telekom.rs.



+38 Profil

icon Re: Select on change10.10.2013. u 09:51 - pre 128 meseci
Ako bi ti PHP služio samo da vrati vrednost nazad, onda nema potrebe da koristiš PHP, već da koristiš samo Javascriptu.
 
Odgovor na temu

Rodja_ki
Kikinda

Član broj: 297407
Poruke: 63
*.dynamic.sbb.rs.



+4 Profil

icon Re: Select on change10.10.2013. u 10:07 - pre 128 meseci
Imam taj select i treba mi njegova vrednost da bih uradio SELECT iz baze, i zbog toga mi treba php vrednost. Znaci kada se selektuje nesto u selectu ja bih trebao da uradim select iz baze, i da se desava u istom trenutku (iliti on change) :) zato mi trebaju oba.
 
Odgovor na temu

deZio
Inđija

Član broj: 150608
Poruke: 345
*.dynamic.isp.telekom.rs.



+38 Profil

icon Re: Select on change10.10.2013. u 10:21 - pre 128 meseci
E tako kaži :D

Probaj ovako koristeći jQuery:

Code (javascript):

// Na promenu selekta se poziva ovaj kod
$('select#idselekta').change(function(){

    // Selektovanu vrednost možeš uvek dobiti pozivajući $('select#idselekta').val();

   // Pozvati AJAX možeš koristeći .ajax() metodu koja je dostupna u jQueryu
   $.ajax({
       type: 'GET',
      url: 'changeStatus.php', // Ovde stavi putanju do svog .php fajla koji će da radi SELECT iz baze.

      // ovo je objekat sa vrednostima koje će se proslediti php skripti putem GET-a. Zatim u PHP skripti možeš da pristupiš koristeći $_GET['selektovanavrednost'] itd...
      data: { selektovanavrednost: $('select#idselekta').val() },

      //Unutar ove funkcije možeš da preuzmeš odgovor koji je PHP putem AJAXa poslao nazad ispisivanjem sa echo, die itd.
      success: function(html){
                    // Radi šta god želiš sa odgovorom ovde...
                    alert( html );
     },
      dataType: 'html'
    });

});
 


 
Odgovor na temu

Rodja_ki
Kikinda

Član broj: 297407
Poruke: 63
*.dynamic.sbb.rs.



+4 Profil

icon Re: Select on change10.10.2013. u 11:52 - pre 128 meseci
E tek sad mi nista nije jasno :) Moze li bez get? Zato sto vec dobijam na toj strani gde je select parametre sa getom. Moze malo objasnjenja dodatnog, nisam bas najbolji sa ajaxom...
 
Odgovor na temu

deZio
Inđija

Član broj: 150608
Poruke: 345
*.dynamic.isp.telekom.rs.



+38 Profil

icon Re: Select on change10.10.2013. u 13:24 - pre 128 meseci
Ta dva GETa nemaju veze jedno sa drugim. AJAX služi da pozoveš neki php kod bez učitavanja nove stranice.

Moraš prvo naučiti kako funkcioniše komunikacija PHP <-> BROWSER. Pokušaću ti laički objasniti:

Kad zahtevaš neku stranicu, browser šalje taj zahtev php-u, php štampa SAM SEBI tu stranicu. Kada je odštampa sam sebi, tu više nema nikakvog PHP koda već je to onda suvi html/css/js i takav kod vraća browseru. Browser dobija dakle samo html/css/js, ništa više i to onda prikaže posetiocu.

Kada je taj selekt prikazan i kada se on izmeni a ti hoćeš tad da nešto uzmeš iz baze ili sačuvaš, to iz browsera ne možeš, jer on ne poznaje PHP, on samo poznaje HTML/CSS/JS i jedino što browser može je da pošalje upit ka nekoj php stranici i da opet sačeka odgovor. U tom zahtevu koji šalje, on može poslati i GET i POST vrednosti koje trebaju PHPu da bi to obradio. To možeš uraditi preko ajax-a ako nećeš da se stranica ponovo učita ili klasično učitavanjem stranice ponovo.

Dakle browser nema nikakve GET i POST vrednosti koje je imao PHP. Browser jedino što zna je da uz pomoć JS pretvori vrednost selekt polja u vrednost GET-a koju može poslati serveru, tj. php-u.

Tvoj slučaj je sledeći:
1. Server obradi stranicu koja ima GET/POST i na osnovu tih promenljivih generiše HTML koji prosledi browseru.
2. Browser to lepo prikaže
3. Pošto si isprogramirao preko jQuery-a da kad se promeni select, da se pošalje zahtev ka serveru, to browser i uradi. Lepo pokupi vrednost selekta, smesti ga u GET i pošalje serveru. PHP dobija taj GET i dalje radi sa njim. Šta će on raditi sa njim moraš ti da odrediš na taj način što ćeš kreirati taj php fajl kojem želiš da pošalješ vrednost selecta.
4. Kada putem PHPa dobiješ ono što želiš, treba to nekako da vratiš browseru opet putem AJAXA. To se postiže tako što u tom PHP fajlu ispišeš ono što želiš proslediti nazad browseru.
Na primer:
Code (php):
// $_GET['vrednostselectboxakojujebrowserposlao']
// ... neki kod za komuniciranje sa bazom ...
echo $nekipodatakizbaze;
 

5. I browser lepo dobije taj $nekipodatakizbaze i ti onda preko javascripta radiš sa tim šta hoćeš. Možeš putem phpa odštampati i html. Npr.:
Code (php):

echo '<h1>'.$nekipodatakizbaze.'</h1>';
 


I ono što browser dobije kao odgovor(odgovor je sve što odštampaš u phpu) se smešta u JS promenljivu(u gornjem primeru je to promenljiva html)

Da bi testirao jel radi sve probaj kreirati taj php fajl i njemu pomoću gornjeg GET koda pošalji nešto, zatim to odštampaj sa echo i onda u JS sa alert( html ); odštampaj to. Ako ti se prikaže alert sa tom vrednošću, to je to.
 
Odgovor na temu

Rodja_ki
Kikinda

Član broj: 297407
Poruke: 63
*.dynamic.sbb.rs.



+4 Profil

icon Re: Select on change11.10.2013. u 11:22 - pre 128 meseci
Nadam se da ne smaram :) Kontam ja kako funkcionise, ali nisam imao mnogo iskustva, pa zato pitam takva pitanja :) U sustini uradio sam kako si rekao, ali dobijem prazan alert. Mozes li mi reci samo kako ja da upisem tu vracenu vrednost u php promenljivu, kako bih ja lakse rukovao, posto to znam :)
 
Odgovor na temu

deZio
Inđija

Član broj: 150608
Poruke: 345
*.dynamic.isp.telekom.rs.



+38 Profil

icon Re: Select on change11.10.2013. u 11:38 - pre 128 meseci
Kako ti izgleda taj php fajl? Pošalji kod.

Mislim da opet nisi razumeo. Ne možeš na već gotovoj stranici da manipulišeš nekom vrednošću sa PHP-om. PHP je svoj kod odradio i on više nije aktivan, znači ne možeš kreirati PHP promenljivu od trenutka kada se stranica učita - tad je prekasno za PHP.

Jedino što možeš sa phpom je da to radiš u tom php fajlu koji koristiš za AJAX(u gornjem primeru je to changeStatus.php). Tada JS pošalje promenljive phpu u ovom obliku:
Code (javascript):
data: { selektovanavrednost: $('select#idselekta').val() }
a ti onda u PHPu putem $_GET upravljaš tom promenljivom i kad vratiš rezultat sa echo opet je PHP gotov, ne možeš više ništa raditi preko PHP promenljive, opet ti ostaje JS i HTML samo.
 
Odgovor na temu

[es] :: Javascript i AJAX :: Select on change

[ Pregleda: 2423 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.