• 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?

Object Storage Arubacloud
0 głosów
207 wizyt
pytanie zadane 26 czerwca 2019 w JavaScript przez fff Gaduła (3,950 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 (3,950 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ź 113 wizyt
pytanie zadane 11 grudnia 2017 w JavaScript przez Vorex444 Dyskutant (9,610 p.)
–1 głos
1 odpowiedź 131 wizyt
pytanie zadane 27 stycznia 2019 w PHP przez daniel2k Obywatel (1,380 p.)
0 głosów
1 odpowiedź 320 wizyt
pytanie zadane 3 sierpnia 2017 w JavaScript przez Vorex444 Dyskutant (9,610 p.)

92,555 zapytań

141,403 odpowiedzi

319,554 komentarzy

61,939 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...