Seite 1 von 1

JS: dezimalzahl --> hexadezimalzahl

Verfasst: Sa Aug 14, 2010 3:56 pm
von naums
Ich will einen Farbwähler, um die Textfarbe in meinem Chat für einen Nutzer festlegen zu können, entwickeln. Damit der Nutzer wenigstens etwas comfort hat, soll er 3 Textbars haben, in denen er rot grün und blau werte eingibt, dann rechnet der JS automatisch die neuen Hexadezimalwerte aus, und verändert dann die farbe eines schriftzugs in die vom User bestimmte. Dann soll es auch noch einen Speichern Button geben, der das ganze in die DB schreibt.

Ich hänge grade daran, den JS zu entwickeln. Vor allem Dezimal --> Hexadezimalzahl weiß ich nicht genau wie ich das machen kann. Vllt. schreib ich auch noch in PHP ein script, was automatisch Bilder mit bestimmten Farben füllt, und die dann dort zum anklicken ausgibt --> sodass die textfelder.value automatisch gefüllt werden. Je nachdem welche Farbe der Nutzer anklickt.

Übrigens: javascript muss definitiv an sein, sonst kann der User den Chat auch nicht benutzen. Sollte der Nutzer JS ausgeschaltet haben, kann er den Chat eh nicht benutzen, also isses auch egal, ob er ne Farbe auswählen kann oder nicht.

Kann mir wer damit helfen, dezimalzahlen in hexadezimalzahlen umwandeln zu lassen? Danke im Vorraus.

Re: JS: dezimalzahl --> hexadezimalzahl

Verfasst: Sa Aug 14, 2010 4:00 pm
von cloidnerux
Der Algorithmus zum Umrechnen ist so einfach, dass solltest du selber schnell schaffen.
Als Tipp:
Dezimalzahlen werden so dargestellt: n*10^m+n*10^(m-1)+...+n wobei 0 <= n < 10 und 0 < m
Hexadezimalzahlen dagegen so: n*16^m+n*16^(m-1)...+n wobei 0 <= n < 16 und 0 < m
Mit etwas überlegen solltest du die Lösung schnell finden.

Re: JS: dezimalzahl --> hexadezimalzahl

Verfasst: Sa Aug 14, 2010 4:19 pm
von naums
^^. ich habe keine ahnung. :?

Re: JS: dezimalzahl --> hexadezimalzahl

Verfasst: Sa Aug 14, 2010 5:22 pm
von Xin
Der Wert einer Zahl ist unveränderlich.

Du möchtest die Darstellung der Zahl ändern und die Darstellung als String haben.

Code: Alles auswählen

function DecToHex(d) {return d.toString(16);}
function HexToDec(h) {return parseInt(h,16);}

Re: JS: dezimalzahl --> hexadezimalzahl

Verfasst: So Aug 15, 2010 8:04 pm
von naums
ähm... okay... ich probiers dann mal aus :P

Re: JS: dezimalzahl --> hexadezimalzahl

Verfasst: Mi Aug 18, 2010 6:50 pm
von naums
ähm... hi nochmal... hab das nu folgendermaßen umgesetzt (hier mal die gesamte HTML Datei):

Code: Alles auswählen

<HTML>
<HEAD>
<TITLE>Farbwähler von Oettinger Games</TITLE>
<script language="javascript">
function colors()
{
  if (document.color.rot.value=="" or document.color.rot.value>255)
  {
  
  }
  if (document.color.grun.value=="" or document.color.grun.value>255)
  {
  
  }
  if (document.color.blau.value=="" or document.color.blau.value>255)
  {
  
  }
  
  var red = document.color.rot.value.ToString(16);
  
  document.getElementById("black").innerHTML=red;
  return false;
}

function getColor(int red, int blue, int green)
{
    document.color.rot.value=red;
	document.color.grun.value=green;
	document.color.blau.value=blue;
	
}
</script>
</HEAD>
<BODY>
<A href="javascript:getColor(255,255,255);">[weiß]</A><BR />
<form name="color" OnSubmit="return colors();">
<pre>

<P>Rot:  <input type="text" name="rot"></P>
<P>Gr&uuml;n: <input type="text" name="grun"></P>
<P>Blau: <input type="text" name="blau"></P>

<input type="submit" name="submit" value="Update">

<div id="black" bgcolor="#000000" width="400px" height="100px"></div>
<div id="white" bgcolor="#ffffff" width="400px" height="100px"></div>

</pre></form>
</BODY>
</HTML>
siehe getColor: gibt es in JAvascript eigentlich sowas wie int? oder werden funktionen ohne solche Ausdrücke definiert? warum funktioniert das nicht (JAvascript ist eingeschaltet....)

Siehe Colors: Auch das funktioniert nicht... in der Fehlerkonsole vom FF steht: "getColor(255,255,255); Funktion nicht definiert." euja... isses doch. oder nicht? kurz gesagt: warum läuft das ne? is doch ..... plöd. :?

Re: JS: dezimalzahl --> hexadezimalzahl

Verfasst: Mi Aug 18, 2010 8:55 pm
von cloidnerux
gibt es in JAvascript eigentlich sowas wie int
Direkt nicht, aber sowas:

Code: Alles auswählen

var yourInt = parseInt(yourString);
Siehe Colors: Auch das funktioniert nicht... in der Fehlerkonsole vom FF steht: "getColor(255,255,255); Funktion nicht definiert." euja... isses doch. oder nicht?
Nope, du hast eine Fehlerhafte Funktion, da Js kein int kennt, und desswgeen kennt er auch das net, tausche mal int mit var.

Re: JS: dezimalzahl --> hexadezimalzahl

Verfasst: So Aug 22, 2010 9:21 am
von naums
jetzt ist es folgender Code: (und funktioniert immer noch nicht, "getColor is not defined" "javscript:getColor(255,255,255);" zeigt mir der FF in der Fehlerkonsole an... warum????)

Code: Alles auswählen

<HTML>

<HEAD>

<TITLE>Farbwähler von Oettinger Games</TITLE>

<script language="javascript">

function colors()

{

  if (document.color.rot.value=="" or document.color.rot.value>255)

  {

  

  }

  if (document.color.grun.value=="" or document.color.grun.value>255)

  {

  

  }

  if (document.color.blau.value=="" or document.color.blau.value>255)

  {

  

  }

  

  var red = document.color.rot.value.ToString(16);

  

  document.getElementById("black").innerHTML=red;

  return false;

}



function getColor(var red, var blue, var green)

{

    document.color.rot.value=red;

	document.color.grun.value=green;

	document.color.blau.value=blue;

	

}

</script>

</HEAD>

<BODY>

<A href="javascript:getColor(255,255,255);">[weiß]</A><BR />

<form name="color" OnSubmit="return colors();">

<pre>



<P>Rot:  <input type="text" name="rot"></P>

<P>Gr&uuml;n: <input type="text" name="grun"></P>

<P>Blau: <input type="text" name="blau"></P>



<input type="submit" name="submit" value="Update">



<div id="black" bgcolor="#000000" width="400px" height="100px"></div>

<div id="white" bgcolor="#ffffff" width="400px" height="100px"></div>



</pre></form>

</BODY>

</HTML>

Re: JS: dezimalzahl --> hexadezimalzahl

Verfasst: So Aug 22, 2010 10:06 am
von cloidnerux
Ich weiß ja nicht welchen FF du verwendest, aber meiner hat mir erst mal erzählt, dass er "or" überhaupt nicht kennt, also erst mal alle ors mit "||" ersetzt und um die Konditionen Klammern gesetzt.
Dann gab man mir den Fehler "Fehler: missing formal parameter" zurück, 20s gegooglet und herausgefunden, dass JS keine Angabe von var in Funktionen will.
Also aus

Code: Alles auswählen

function getColor(var red, var green, var blue)
folgendes gemacht:

Code: Alles auswählen

function getColor(red, green, blue)
Funktioniert jetzt einwandfrei bei mir im FF 3.6.2
Dann noch 2 Dinge:
Bitte in folgenden Posts unnötige Zeilenumbrüche entfernen und deine Funktionen sinnvoll benennen, "getColors" wäre eher "setColors" .