Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Wyszukanie odpowiednich id z formularza
Forum PHP.pl > Forum > Przedszkole
kkuubbaa88
na stronie mam divy wyswietlone w taki sposob:

<div id="jakaś nazwa"></div>

<div id="coś ktoś ma"></div>

<div id="dawno temu"></div>
...itd.

teraz mam input=text i name=wyszukaj w ktorym chce wpisac np słowo "coś" to pozostaje wyswietlony tylko div, ktory ma w nazwie id słowo coś. Wszystko sie to dzieje automatycznie, dlatego chce to dac w akcji onchange. Potrzebuje tylko strukture funkcji, aby odebrać wartość z inputa i w jakis sposob dac wszystkich pozostalym diva visible=disable. Jak cos takiego zrobic ?
phpion
Nie lepiej poprzez klasy? Nadajesz odpowiednie klasy elementom i filtrujesz po klasach, a nie po fragmentach identyfikatorów.
kkuubbaa88
u mnie klasa jest u kazdego taka sama, poniewaz po niej daje style. Dlatego potrzebuje to zrobic na id.
phpion
Przecież możesz nadać kilka klas jednemu elementowi: <element class="klasa1 klasa2 klasa3" />
kkuubbaa88
dobrze wiedziec smile.gif tylko dlaczego lepiej jest to robic na klasach ? co to daje ? co to zmienia ?
phpion
To, że w ten sposób prościej rozwiązać Twój problem.
kamil4u
Ogólnie nie wiem po co Ci to, ale masz:
Kod
<div id="main">
  <div id="jakas_nazwa">jakas_nazwa</div>
  <div id="cos_ktos_ma">cos_ktos_ma</div>
  <div id="dawno_temu">dawno_temu</div>
</div>
<input onChange="test(this.value);">
<script>
function test(value){
var el = document.getElementById('main').getElementsByTagName('div');
for(e in el){
  if(el[e].id){
   var re = new RegExp(value,"g");
   if( re.test(el[e].id) )
    el[e].style.color="green";
   else
    el[e].style.color="";
   }
}
}
</script>


PS. ID nie powinno zawierać polskich znaków i spacji
kkuubbaa88
a w jaki sposob ? moze jakis przyklad w javascriptcie ?

nie wiem w jaki sposob chowac niepasujace divy. Czy zapisac wszystkie nazwy do tablicy i jakos w petli to obslugiwac ? czy cos w tym stylu ? jak wlasnie rozwiazac ten problem ?
erix
Cytat
PS. ID nie powinno zawierać polskich znaków i spacji

Cytat
ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").

http://www.w3.org/TR/html4/types.html#h-6.2

Cytat
Czy zapisac wszystkie nazwy do tablicy i jakos w petli to obslugiwac ? czy cos w tym stylu ? jak wlasnie rozwiazac ten problem ?

A po co, skoro rolę tej tablicy może pełnić drzewo DOM? Nie wiem w ogóle, po co usilnie chcesz nadać identyfikatory tym warstwom...
kkuubbaa88
chcialem to zrobic na id, poniewaz w jakis posob musze rozrozniac te nazwy, a to mi wpadlo do glowy. senk w tym, ze kazdy div ma w sobie wlasnie taką polska nazwe, a formularz ma je selekcjonować. Uzytkownik do inputa wpisuje polskie znaki i spacje, dlatego ja też musze je mieć gdzieś zapisane.

nie chce tego robic za pomoca ajaxa, poniewaz za kazdym razem bedzie sie laczyc z baza danych. Chce to raz pobrac z bazy i operowac juz na wyswietlonych za pomoca javascript.
Pawel_W
to nadaj każdemu divowi jakiś atrybut, np. <div rel="specjalna nazwa czy co ty tam chcesz...">

i potem sprawdzasz czy attributes['rel'].value zawiera szukaną frazę
kkuubbaa88
a jezeli nie bede mial id tylko atrybut, to w jaki sposob sie podpiac pod odpowiedniego diva ? bo w tym wypadku to juz mi nie pomoze:

var zmienna = document.getElementById('nazwa')
Pawel_W
musisz zebrać wszystko, np.
  1. divy = document.getElementsByTagName('div');

potem robisz 'loopa' z warunkiem, np.:
  1. for(i=0;i<divy.length;i++)
  2. {
  3. // tutaj kod wyszukiwarki ;)
  4. }

więcej nie mogę powiedzieć, musisz się sam domyślić winksmiley.jpg
kamil4u
Cytat
więcej nie mogę powiedzieć, musisz się sam domyślić winksmiley.jpg

Przecież podałem cały kod! Zmienienie go z id na rel to kwestia 30s smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.