Autor Zpráva
Jack06
Profil
Chci se optat jak udělat když napíše třeba 2písmenka v inputu, aby mi to vyhledalo z pole $uzivatele nick zacinajici na tyto pismenka.

Viz jakýkoliv chat..

Zkouším to, ale spíše mi to hází na další input místo aby to spustilo script :-D (jako tableindex, ale ten nemám nikde v inputu použitý)

Díky moc
Jack06
Profil
Nalezl jsem tento kód. Při kliknutí vyzvedne z pole users jméno, se shodným začátkem napsaných písmen do pole input.
Zajímalo by mě, jak udělat aby například když do inputu kliknu ar a na tyto písmena bude začínat více jmen, tak aby po opětovném stisknutí tab se to změnilo na další z výběru. Díky předem.


formulář:
<body onLoad="document.fr.textik.focus();">
<form name="fr" action="./form/fo_form.php?rid=<? echo $_GET['rid'];?>" method="post">
<table>
<tr>
<td><input type="text" name="textik" size="60" onkeydown="if(event.keyCode==9){dopln(); this.setSelectionRange(this.value.length, this.value.length); return false;}" /></td>
</tr>
</table>
</form>
   $nick= $nick.",\"".$s_r[1]." \"";
    <SCRIPT language="JavaScript" type="text/javascript">
 var users = new Array (""<?php echo $nick; ?>);
  </SCRIPT>
</body>


-$nick jde o zápis "nick1","pepa","franta",atd vybíráno z mysql


javascript s funkcí:


function dopln()
      {
	      dvojtecka = '';
	      var slovo = p_slovo();
	      var xxx = 0;

	      if(slovo == -1)
	      {
	         last_delka=0;
	      }
	      else
	      {
	         xxx = hledej(slovo.toLowerCase());
	      }
	
         if (xxx == 1)
	         document.fr.textik.focus();
      }

      function p_slovo()
      {
	      var pole = document.fr.textik.value.split(' ');
	      pole.reverse();

	      if (pole.length==1)
	         	dvojtecka=': ';

	      if (!pole[0])
	         return(-1);
	      else
	         return(pole[0]);
      }

      function hledej(slovo)
      {

	      var i,user;
	      var delka  = slovo.length;
	      var delka2 = delka;
	      var str    = document.fr.textik.value;

	      for (i=0;i<users.length;i++)
	      {
	         user=users[i].substring(0,delka).toLowerCase();

	         if (slovo == users[i].toLowerCase())
	         {
		         slovo = slovo.substring(0,last_delka);
		         delka = slovo.length;
		         continue;
	         } 

	         if (user == slovo)
	         {
		         document.fr.textik.value = str.substring(0,str.length-delka2)+users[i].substring(0,users[i].length-1) +dvojtecka;
		         last_delka = delka;
		         return(1);
		         
	         }
	         
	      }

	      return(-1);
	      }

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: