• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Tworzę stronę w js i niewiem czemu to nie działa?

0 głosów
322 wizyt
pytanie zadane 26 czerwca 2019 w JavaScript przez fff Gaduła (4,000 p.)

Cześć mam 14 lat i póbuję napisać stronę, która miała by zamieniać napisany tekst w szyfr zgodnie z wybranymi literami. Ale coś mi nie działa bo poprawnie zamienia się tylko 1 litera. Nie wiem dlaczego. Z góry dziękuję za pomoc.

udostępnijem też pliki na stronie: http://piszeszyfrem.cba.pl/;

js


var litery = new Array(25);
litery[0] = "A";
litery[1] = "B";
litery[2] = "C";
litery[3] = "D";
litery[4] = "F";
litery[5] = "G";
litery[6] = "H";
litery[7] = "I";
litery[8] = "J";
litery[9] = "K";
litery[10] = "L";
litery[11] = "M";
litery[12] = "N";
litery[13] = "O";
litery[14] = "P";
litery[15] = "Q";
litery[16] = "R";
litery[17] = "S";
litery[18] = "T";
litery[19] = "U";
litery[20] = "V";
litery[21] = "W";
litery[22] = "X";
litery[23] = "Y";
litery[24] = "Z";
dlugoscTablicy = litery.length;
	
	var aktualna=0;
	
	function odliczanie()
	{	
	  document.getElementById("panel").style.backgroundColor="red";

      text = "<ul>";
      for (i = 0; i < dlugoscTablicy; i++) 
	  {
        text += "<li>" + litery[i] + "= <input id=\"pole"+aktualna+++"\" maxlength=\"3\" size=\"10\" type=\"text\" value=\"?\"></li>";//  required
      }
      text += "</ul>";
      //text += "";
	  

      document.getElementById("panel").innerHTML = text;

	}
	
	
	var noweLitery = new Array(25);
	
	function zatwierdz()
	{
		aktualna=0;
		
		for (i = 0; i < dlugoscTablicy; i++) 
	  {
		 /* var nowa  = document.getElementById("pole1").value;
		  document.getElementById("wypisane").innerHTML = nowa;*/
		  
		  
		  noweLitery[aktualna] = document.getElementById("pole"+aktualna).value;
		  
		  
		  		  		  
		  aktualna++;       
      }
      document.getElementById("wypisane").innerHTML = noweLitery;	  
	  dopiszDo()
	}
	function dopiszDo()
	{
		//planowana tabela
		var pomocn = new Array(25);
		aktualna=0;
		
	  for (i = 0; i < dlugoscTablicy; i++) 
	  {
		  pomocn[aktualna]= " "+litery[aktualna]+" = " +noweLitery[aktualna];
		  
		  		  		  
		  aktualna++;
	  }
	  document.getElementById("wypisane").innerHTML += "<br>Twój szyfr:<br>"+pomocn;
	  		 	
	}
	
	var przechwyt;
	
	function rozpocznij()
	{
		
		przechwyt = document.getElementById("przedZmiana").value;
		przechwyt = przechwyt.toUpperCase();
		//alert(przechwyt);
		//var przechwytTab = new Array(przechwyt.length);
		var przechwytTab = przechwyt.split("");
		
		//alert(przechwytTab.length);
		alert(przechwytTab);//co w tablicy
		
		aktualna=0;
		for (i = 0; i < przechwytTab.length; i++)
		{
			//czy nie jest spacją
			
			
			if( przechwytTab[aktualna] !=" ")
			{
				//alert("1nie_");
				
				var pomocAkt=0;
				//////////
		        //alert(litery[pomocAkt]);
				
				
					
		        if( przechwytTab[aktualna] == litery[pomocAkt] )
		        {
			       alert("dobra1");
				   przechwytTab[aktualna] = noweLitery[pomocAkt];
		        }
				
		        else
		        {
					alert('zła1')
					while(przechwytTab[aktualna] > litery[pomocAkt])
				    {
					   alert('zła2');
					   pomocAkt++;
				    }
				    alert("dobra2");
					//przechwytTab[aktualna] = noweLitery[pomocAkt]
												        			     
		        }
				//zmien();
			}
						
			else
			{
				alert("0 tak_");
			}
			
			aktualna++;
		}
		alert(przechwytTab)
				
	}
	
	/*function zmien()
	{
		
	}*/
	  

html


<!DOCTYPE HTML>
<html lang="pl">
<head>
	<meta charset="utf-8" />
	<title>szyfr czasu</title>
	
	<script type="text/javascript" src="skrypt.js"></script>
	
</head>
<body><!--onload="odliczanie()";-->
 <div id="panel">data
 <!--<input type="text" name="nazwa2">-->
 <button id="przejdz" onclick="odliczanie()">click me</button>
 </div>
 <!--<input type="submit" id="zatwierdz" name="zatwierdź" onclick="zatwierdz()">-->
 <button id="zatwierdz" onclick="zatwierdz()">zatwierdź</button>
 <div id="wypisane">ggg</div>
 
 <div id="wpiszWPole">
 <textarea id="przedZmiana" name="message" rows="10" cols="30" placeholder="wpisz w pole tekst, który chcesz zaszyfrować"></textarea>
 <button onclick="rozpocznij()" >Zatwierdź</button>
 </div>
 
  
  	
</body>
</html>

 

1 odpowiedź

+1 głos
odpowiedź 26 czerwca 2019 przez cz3ran Stary wyjadacz (13,380 p.)
wybrane 27 czerwca 2019 przez fff
 
Najlepsza

Śpieszę z wytłumaczeniem, w funkcji rozpocznij() masz taki kawałek kodu:
 

if( przechwytTab[aktualna] == litery[pomocAkt] )
                {
                   alert("dobra1");
                   przechwytTab[aktualna] = noweLitery[pomocAkt];
                }
                 
                else
                {
                    alert('zła1')
                    while(przechwytTab[aktualna] > litery[pomocAkt])
                    {
                       alert('zła2');
                       pomocAkt++;
                    }
                    alert("dobra2");
                    //przechwytTab[aktualna] = noweLitery[pomocAkt]
                                                                          
                }

Sprawdzasz czy pierwsza litera jest literą 'A', jeżeli nie, zaczynasz inkrementować pomocAkt, ale już nigdy nie robisz podmiany. Zamiast tego, proponuję Ci przeiterować po całęj tablicy litery i po znalezieniu danej litery, zrobić podmiankę:
 

 if( przechwytTab[i] !=" ")
            {
                //alert("1nie_");
                 
                var pomocAkt=0;
                //////////
                //alert(litery[pomocAkt]);

                for (var y = 0; y < litery.length; y++) {
                  if( przechwytTab[i] == litery[pomocAkt] ) {
                    przechwytTab[i] = noweLitery[pomocAkt];
                    break;
                  }

                  pomocAkt++;
                }
                 
                
             
        }}



Stackblitz z (chyba) działającym Twoim kodem:
https://stackblitz.com/edit/js-bspsvj?file=index.js

Pozdrawiam

komentarz 27 czerwca 2019 przez fff Gaduła (4,000 p.)
edycja 30 czerwca 2019 przez fff

Dziękuję. Gotowa moja strona http://szyfrem-pisze.cba.pl/

Jeśli masz pomyśł jak jeszczę mogę ją ulepszyć pisz na

Podobne pytania

0 głosów
1 odpowiedź 205 wizyt
pytanie zadane 11 grudnia 2017 w JavaScript przez Vorex444 Dyskutant (9,610 p.)
–1 głos
1 odpowiedź 222 wizyt
pytanie zadane 27 stycznia 2019 w PHP przez daniel2k Obywatel (1,380 p.)
0 głosów
1 odpowiedź 869 wizyt
pytanie zadane 3 sierpnia 2017 w JavaScript przez Vorex444 Dyskutant (9,610 p.)

93,695 zapytań

142,613 odpowiedzi

323,225 komentarzy

63,226 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...