Slanje dijela parametra na server

poruka: 13
|
čitano: 1.751
|
moderatori: XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
17 godina
offline
Slanje dijela parametra na server

Imam problemčić (i pitanje:) oko slanja parametara na server. Unutar forme imam tekstualni input koji će nakon korisnikova početka unosa preko autocompletea ponuditi moguće produžene tekstualne opcije koje su prilagođene korisniku da razumije točno što je odabrao. Ali kada korisnik nakon unosa i odabira mogućih opcija klikne na submit iliti pošalji, serveru treba biti proslijeđen samo dio odabira kao parametar jer jedino tako server vraća rezultat.

Primjer: Korisnik počne unositi "za", a autocomplete već nudi jedinu opciju "Zagreb, Hrvatska (ZAG)". Kada korisnik odabere opciju i klikne "Pošalji", serveru bi trebalo samo proslijediti ZAG.

Koji su najjednostavniji načini i zamolio bih primjer ako može. Ako sam odabrao krivi način rješavanja, opišite bolji način. Za sad koristim samo HTML/CSS/JS.

Hvala

Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
Slanje dijela parametra na server

paaaaaa mislim da to i nije baš najelegantnija stvar, jer ovako, na prvu mi se čini da bi svaki potencijalni upis morao previditi i sa if-elseif baratati sa time

 

imaš nešto slično ako sam dobro razumio ovdje

http://www.plus2net.com/javascript_tutorial/string-search.php

 

sa string.search funkcijom tragaš za nekim "sub-stringom"  -  ovdje "ZAG" unutar nekog većeg stringa - kod tebe "Zagrebačka županija (ZAG)", i ako ga ima, onda barataš sa njime  - ispisuješ ga negdje ili šalješ, ili spremaš u neku varijablu i onda sa njom kasnije barataš 

~21 god, ETFOS, Slavonac, linux and open source fan, net addict, želim znati više, interesi: web dev, svemir, glazba...
 
1 0 hvala 1
14 godina
protjeran
offline
Slanje dijela parametra na server

Ako je autocomplete, onda valjda imaš to u bazi spremljeno, a ako imaš u bazi onda možeš manipulirati time kako god želiš, bez search-a itd itd.

void function(char *str) {char buffer[16];strcpy(buffer,str); } void main() {char large_string[256];int i; for( i = 0; i < 255; i++) large_string[i] = 'A';function(l
 
0 0 hvala 0
17 godina
offline
Re: Slanje dijela parametra na server
Bypass kaže...

Ako je autocomplete, onda valjda imaš to u bazi spremljeno, a ako imaš u bazi onda možeš manipulirati time kako god želiš, bez search-a itd itd.

Baza gradova je unutar index.html. Broj gradova sam skratio jer je ogroman popis. Postoji bolji način smještanja u posebnu autocomplete.js datoteku, ali sad želim ovo pretraživanje da završim bez pozivanja dodatnih datoteka jer mi je ovo ostao zadnji problem. Dio head-a:

<script>
  $(document).ready(function() {
    $("input#autocomplete").autocomplete({
   source: ["Amsterdam, Nizozemska (AMS)","Berlin, Njemačka (BER)","London, Engleska (LON)","Zagreb, Hrvatska (ZAG)"]
   });
});

  </script>

Dio body-a:

<FORM method="get" id="pretraga" name="pretraga" action="http://mjesto.pretraga.com/grad.aspx?grad=grad"><INPUT value="true" type="hidden" name="pretraga">

<p>Mjesto: <input id="autocomplete" name="grad" type="text"/></p>

<INPUT value="Pretraži" type="submit">

</FORM>

 

Kako da autocomplete popunjava kompletan naziv grada, države i kratice, ali na server šalje samo kraticu? Može li nekakav primjer ili link odakle da počnem istraživati jer na netu nisam našao kompletan odgovor za ovaj problem već samo natuknice koje me nisu na ništa bolje navele.

17 godina
offline
Re: Slanje dijela parametra na server
kakapo kaže...

paaaaaa mislim da to i nije baš najelegantnija stvar, jer ovako, na prvu mi se čini da bi svaki potencijalni upis morao previditi i sa if-elseif baratati sa time

 

imaš nešto slično ako sam dobro razumio ovdje

http://www.plus2net.com/javascript_tutorial/string-search.php

 

sa string.search funkcijom tragaš za nekim "sub-stringom"  -  ovdje "ZAG" unutar nekog većeg stringa - kod tebe "Zagrebačka županija (ZAG)", i ako ga ima, onda barataš sa njime  - ispisuješ ga negdje ili šalješ, ili spremaš u neku varijablu i onda sa njom kasnije barataš 

Funkcionalnije mi djeluje http://www.plus2net.com/javascript_tutorial/string-slice.php +substr i substring. Samo moram vidjeti kako ću napraviti zahvat odozada pošto je duljina stringa dinamična...novi parametar koji trebam izvesti se treba sastojati od n-4, n-3, n-2. Postoji li i takva opcija?

17 godina
offline
Slanje dijela parametra na server

Našao sam rješenje:

<html>
<body>

<script type="text/javascript">

var str="Let him who have understanding reckon the number of the beast, for it is a *human number*. Its number is 666!";

document.write(str.substr(-4,3));

</script>

</body>
</html>

{#}{#}{#}

Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
Slanje dijela parametra na server

pravilnije bi ti bilo

 

// sto trazis - velika slova unutar zagrada ([A-Z])
var re = /\(([A-Z]+)\)$/;
// string u kojem gledas (iz input polja)
var m = $('input#autocomplete').val();
var mtch = m.match( re );
// ovo je rezultat, null je failsafe, uvijek ga koristim pa eto i tu :)
mtch = mtch != null ? ( mtch.length == 2 ? mtch[ 1 ] : null ) : null;

 

 

ovo ti nađe ZAGBR, ZG ili sto vec hoces unutar zagrada

www.prijevodi-online.org
Moj PC  
1 0 hvala 1
17 godina
offline
Re: Slanje dijela parametra na server
Snyder kaže...

pravilnije bi ti bilo

 

// sto trazis - velika slova unutar zagrada ([A-Z])
var re = /\(([A-Z]+)\)$/;
// string u kojem gledas (iz input polja)
var m = $('input#autocomplete').val();
var mtch = m.match( re );
// ovo je rezultat, null je failsafe, uvijek ga koristim pa eto i tu :)
mtch = mtch != null ? ( mtch.length == 2 ? mtch[ 1 ] : null ) : null;

 

 

ovo ti nađe ZAGBR, ZG ili sto vec hoces unutar zagrada

u slučaju da je $("input#autocomplete").autocomplete({


postao $("input#grad").autocomplete({


kao i id=autocomplete u id=grad,

tada bi bilo:


"var re = /\(([A-Z]+)\)$/; //varijabli re dodajem ono što tražim(u ovom slučaju tri velika slova koja se pojavljuju unutar zagrada s tim da su zagrade isključene)(zašto se osim [A-Z] dodaju i ostali znakovi?)

var m = $('input#grad').val(); //varijabli m dodajem vrijednost input#grad
var mtch = m.match( re ); //varijabli mtch dodajem vrijednosti m koje se poklapaju sa onim u varijabli re (kako protumači da treba samo tri velika slova?)

mtch = mtch != null ? ( mtch.length == 2 ? mtch[ 1 ] : null ) : null;" //mtch je mtch i nije null - null je kada je dužina mtch 2 i kada mtch ima samo jedan slog (može opisno pojašnjenje značenja dalje)

----

kako nakon izoliranja vrijednosti unutar zagrade parametru grad ($("input#grad")) promijeniti vrijednost u vrijednost mtch da kao takav bude proslijeđen serveru(mora imati originalni Name jer ga server samo tako prihvaća)? jer se još uvijek prosljeđuje kompletan string nako submita...

Poruka je uređivana zadnji put čet 12.4.2012 15:49 (Morag).
15 godina
neaktivan
offline
Slanje dijela parametra na server

dakle - korisnik unosi formu i sa autocompleteom mu sa napiše "Grad Zagreb (ZAG)" i ti želiš da ti se samo 'ZAG' pošalje na server - ne razumijem zašto bi to radio, jedino što mi pada napamet je ušteda prostora, ali ako dobro napraviš normalizaciju, tu uštedu nećeš ni osjetiit. Ja bih poslao sve - "Grad ZAgreb (ZAG)" na server, i kasnije izvukao samo ZAG iz atributa sa sql upitom (ako je baza u sqlu rađena) - za ostale nisam siguran, ali je sigurno slično. Jer ovo mi se iskreno čini puno truda za slab uspjeh :S Jedino ako možda planiraš nešto drugo 

----

EDIT: sada sam se sjetio da ne smiješ imati višesložne unose u polje. shvatio sam zašto onda radiš

 

 

možda bi onda mogao napraviti ovako:  (ovo je samo algoritam pa je neovisan o programskom jeziku)

- napraviš 2D polje sa 2 vrijednosti - tipa: "Grad_Zagreb" i "ZAG"; "Osiječko-baranjska" i "OSK" i onda napraviš neke petljicu koja provjerava unos unutar autocomplete polja - i da se onda ta vrijednost provjeri u matrici i ako postoji (mora postojati) onda se samo šalje njena druga vrijednost na server - tipa upisano je "Grad ZAgreb" a iz polja se šalje samo vrijednost "ZAG"

 

to bi se moglo napraviti u php i u javascriptu čini mi se vrlo lagano

~21 god, ETFOS, Slavonac, linux and open source fan, net addict, želim znati više, interesi: web dev, svemir, glazba...
Poruka je uređivana zadnji put sri 11.4.2012 17:57 (kakapo).
 
1 0 hvala 0
17 godina
offline
Re: Slanje dijela parametra na server
kakapo kaže...

dakle - korisnik unosi formu i sa autocompleteom mu sa napiše "Grad Zagreb (ZAG)" i ti želiš da ti se samo 'ZAG' pošalje na server - ne razumijem zašto bi to radio, jedino što mi pada napamet je ušteda prostora, ali ako dobro napraviš normalizaciju, tu uštedu nećeš ni osjetiit. Ja bih poslao sve - "Grad ZAgreb (ZAG)" na server, i kasnije izvukao samo ZAG iz atributa sa sql upitom (ako je baza u sqlu rađena) - za ostale nisam siguran, ali je sigurno slično. Jer ovo mi se iskreno čini puno truda za slab uspjeh :S Jedino ako možda planiraš nešto drugo 

----

EDIT: sada sam se sjetio da ne smiješ imati višesložne unose u polje. shvatio sam zašto onda radiš

 

 

možda bi onda mogao napraviti ovako:  (ovo je samo algoritam pa je neovisan o programskom jeziku)

- napraviš 2D polje sa 2 vrijednosti - tipa: "Grad_Zagreb" i "ZAG"; "Osiječko-baranjska" i "OSK" i onda napraviš neke petljicu koja provjerava unos unutar autocomplete polja - i da se onda ta vrijednost provjeri u matrici i ako postoji (mora postojati) onda se samo šalje njena druga vrijednost na server - tipa upisano je "Grad ZAgreb" a iz polja se šalje samo vrijednost "ZAG"

 

to bi se moglo napraviti u php i u javascriptu čini mi se vrlo lagano

Upravo to. Server treba dobiti troslovnu oznaku grada (nebitna su velika-mala slova,ali u ovom slučaju su velika u zagradi) inače ne vraća rezultat. Bazu gradova sam dobio u excell datoteci koja je brljotina kakve nema tako da sam popis gradova skinuo sa druge stranice u tekstualnom nizu odvojenom zarezima. Pošto sam počeo od nule bez tehničke pomoći, uspio sam sve riješiti do ovoga(učim u hodu:)) samo uz pomoć html-a(tijelo za inpute i pozive skripti),CSS-a(maknuo dizajn dok ne riješim problem) i JavaScripta(popis gradova, autocomplete datuma i gradova, provjera popunjenosti inputa i sam submit nakon provjere). PHP još ne bih ubacio dok ne riješim problem...tada ću moć sve zakomplicirati;)) Ostaje mi još ovaj dio i imat ću dodatak u životopis :)

 

Pomoć iznad mi djeluje logično i razuzmijem uglavnom sve, samo moram prokljuviti kako da lokalnu vrijednost varijable(izvučena tri slova) u JS zapišem u parametar grad u samom html-u odakle će biti proslijeđen sa ostalim parametrima iz forme na server. Kada sam upišem tri znaka sve radi, ali korisnik ne zna te kratice(niti bi ih trebao znati)...zato je tu produžena verzija.

15 godina
neaktivan
offline
Slanje dijela parametra na server

evo - nije javascript nego je jquery - lik traži da nakon što je upisao ime i prezime (sa autocomplete) da se samo ID od toga imena i prezimena (uoči analogiju ime županije - kratica grada kod tebe) zapiše u neku novu varijablu. tada sa tom varijablom možeš dalje raditi, pa i poslati ju na server - http://stackoverflow.com/questions/5638241/jquery-autocomplete-adding-additional-data-with-autocompleted-data

 

nažalost, nemam pretjerano iskustva sa jqueryem, sa kodiranjem ozbiljnije, ali razumijem dobro što se radi, i mislim da je ovo upravo ono što si tražio

~21 god, ETFOS, Slavonac, linux and open source fan, net addict, želim znati više, interesi: web dev, svemir, glazba...
 
1 0 hvala 1
17 godina
offline
Re: Slanje dijela parametra na server
kakapo kaže...

evo - nije javascript nego je jquery - lik traži da nakon što je upisao ime i prezime (sa autocomplete) da se samo ID od toga imena i prezimena (uoči analogiju ime županije - kratica grada kod tebe) zapiše u neku novu varijablu. tada sa tom varijablom možeš dalje raditi, pa i poslati ju na server - http://stackoverflow.com/questions/5638241/jquery-autocomplete-adding-additional-data-with-autocompleted-data

 

nažalost, nemam pretjerano iskustva sa jqueryem, sa kodiranjem ozbiljnije, ali razumijem dobro što se radi, i mislim da je ovo upravo ono što si tražio

hvala, ostavljam kao rezervu :) nastojim izbjeći "crne kutije" i to zasada riješiti od nule tako da upoznam načine i metode rješavanja različitih problema. Kolega
Snyder je to zasada najbolje opisao i sam sam pokušao protumačiti u svom postu gore(zato je bilo editiranja kako sam kopčao napisano), ali fali mi iskustvo i zasada još nisam uspio otkriti kako vrijednost mtch-a vratiti u parametar grad(iz JS-a nazad u html prije nego se svi parametri pošalju na server) tako da se još preusmjerava cijeli string...razni načini prebacivanja vrijednosti mtch (i preko pokazatelja) na grad za sada nije uspjelo, ali se bar uči kako ne ide :D

17 godina
offline
Slanje dijela parametra na server

Rješenje je jednostavno na kraju, ali se mora naučiti:$('#grad').val(mtch);:))

Moj PC  
1 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice