Newsgroup: it.comp.lang.javascript
Titolo: manipolazione stringhe

ciao sto cercando di fare una pagina in ajax.
è quasi tutto a posto però non riesco a risolvere un piccolo problema.
sostanzialmente utilizzo l'evento onKeyup per attivare un httprequest.
il server mi risponde con un xml contentente dei tag.
faccio un esempio:
se scrivo in un campo input
web
e nel database ho i tag web, webmastery, webarea
l'xml risponde con web webmastery webarea.
i tre tag sono a disposizione in un div creato attraverso la manipolazione
del dom e ognuno di loro ha un evento onclick che invia sé stesso al campo
di input dove avevo scritto web
la pagina che fa la richiesta al database è già in grado di fare la ricerca
sull'ultima parola, se ad esempio scrivessi
pippo web
l'xml ritornerebbe i soliti web webmastery webarea
ora, il mio problema è questo:
se io ho nel campo input
pippo web
e poi clicco un tag proposto, tipo webmastery, ottengo giustamente
pippo webwebmastery
non riesco a far appendere alla stringa nel campo input la parola webmastery
facendo rimuovere le lettere che hanno attivato la httpreques.
scusate la lunghezza del post.
ma è il primo qui su it.comp.lang.javascript
ciao ciao
Sat_
-- 
chmod a-rw The\ Untouchables.avi

niente, eh, non mi aiuta nessuno. mi viene da piangere.
ho fatto tutto questo accrocchio ma non lo posso usare :'(

 ho fatto tutto questo accrocchio ma non lo posso usare :'(
ajax non è altro che una serie di script, ergo (a meno che ovviamente
qualcuno qua dentro non si sia studiato questi script) occorre chiedere a
chi li ha sviluppati...è come se io scrivessi "ho preso il file pippo.js da
rete, qualcuno mi dà una mano per fare ..."?
Altrimenti evita di usare script già fatti e fatteli te, allora vedrai che
gli aiuti ci saranno sicuramente (se posti il codice js che ti dà
problemi).
-- 
"Emancipate yourselves from mental slavery;
None but ourselves can free our minds"
									    B.M.

 ho fatto tutto questo accrocchio ma non lo posso usare :'(
Su, su. Non fare cosě.
E' che personalmente (e non solo io grazie al cielo) ho una repulsione per
il termine "ajax", dato che č nato solo per questioni di marketing. Un po'
come trovare un nome all'acqua calda.
Comunque sia, per quanto riguarda il tuo problema bisognerebbe vedere il
codice, e penso che per fare qualcosa di veramente funzionale tu debba
ricorrere ad oggetti textRange... Ma comunque: se si tratta unicamente di
eliminare gli ultimi caratteri che hanno scatenato la richiesta, č
abbastanza semplice:
Sarebbe qualcosa del tipo:
	var el=document.getElementById("txt-search");
 
	el.value=el.substr(0,el.length-sWordToSearch.length)+sWordClicked;
Dove si ipotizza che il tuo campo di testo abbia id "txt-search", che in
"sWordToSearch" ci sia la parola che hai mandato al server ("web") per
popolare la lista, mentre in "sWordClicked" c'č la parola scelta tra quelle
della lista.
-- 
~ "FINARMENTE LI SFRATTATI AVRANNO UN TETTO SULLA TESTA!
...perň tirato ammodino, un tegolo pe' vorta.." (Il vernacoliere)

 
ciao, grazie per la risposta. non so da dove si evinca che io abbia copiato
il codice in giro. comunque il subject del thread parla di un banale
trattamento delle stringhe, e la domanda che ho fatto è del tutto in topic
con il javascript.
fondamentalmente mi trovo con questa situazione:
sto passando all'elemento "A" questo attributo:
textNode.setAttribute("onClick","document.test.tags.value =
document.test.tags.value + '"+root_node.item(i).firstChild.data +" '");
dove chiaramente root_node.item(i).firstChild.data è la variabile che mi
stampa il testo del tag (textNode.innerHTML= testo + " ";)
e sé stessa in document.test.tags
facendo così creo questo errore
webwebmastery
quando io voglio avere un comportamento del tipo
digito "web" => mi si presentano i suggerimenti "webmastery web
webdeveloper" e cliccando su uno di questi ottengo
webmastery
come vedi non credo che sia OT.
grazie


 il codice in giro. 
Ajax! Quando leggo ajax mi viene il mal de la pecola!
[CUT]
Vedi se la risposta di zer0 ti aiuta.
-- 
"Non sai che ci vuol scienza
 ci vuol costanza
 ad invecchiare senza maturità"
									    F.G.

 quelle della lista.
questo č meraviglioso, ed č esattamente quello che stavo cercando nel ng.
se ho capito bene dovrebbe funzionare anche nei casi in cui el.value sia del
tipo
pippo web
ora provo a aggiungerla alla funzione main.
grazie mille :)


 
peccato che per pigrizia mando tutto el.value al server, e faccio
l'esplosione della stringa in array da php, selezionando poi l'ultimo
elemento.
ora a provo a fare l'esplosione direttamente da js e ad assegnare a
sWordToSearch il valore vero.
grazie ancore


 elemento.
Se l'esplosione la fai solo considerando lo spazio, e vuoi unicamente
mandare l'ultima parola, puoi benissimo fare qualcosa tipo:
alert(s.substr(s.lastIndexOf(" ")))
var sWordToSearch=el.value.substr(el.value.lastIndexOf(" "));
-- 
~ "Nei film americani, qualsiasi problema che venga considerato
sufficientemente catastrofico, puo' essere risolto facendo esplodere uno
o piu' ordigni nucleari" (ZER0 & Cosimo)

 Ajax! Quando leggo ajax mi viene il mal de la pecola!
Pure a me. E poi mi ricorda un detersivo.
Tra l'altro, avessero almeno optato per un nome sensato! No, doveva essere
figo, anche se poi aveva poco senso.
-- 
~ "FINARMENTE LI SFRATTATI AVRANNO UN TETTO SULLA TESTA!
...però tirato ammodino, un tegolo pe' vorta.." (Il vernacoliere)

 ajax non è altro che una serie di script, 
No, macché.
Ajax è una terminologia. Esattamente come lo era DHTML.
-- 
~ "When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)

 elemento.
Se l'esplosione la fai solo considerando lo spazio, e vuoi unicamente
mandare l'ultima parola, puoi benissimo fare qualcosa tipo:
	var sWordToSearch=el.value.substr(el.value.lastIndexOf(" "));



grazie mille! ho risolto con il tuo aiuto ed č proprio bello.
poi se ti va lo metto online
ho dovuto aggiungere un campo hidden per portarmi dietro  sWordToSearch ma
ora č ok.
grazie ancora!
