JS: dezimalzahl --> hexadezimalzahl

Fragen zum Thema HTML, JavaScript, PHP
Antworten
Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

JS: dezimalzahl --> hexadezimalzahl

Beitrag von naums » Sa Aug 14, 2010 3:56 pm

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.
.globl truth
truth:
mov r0, #42
mov pc, lr

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: JS: dezimalzahl --> hexadezimalzahl

Beitrag von cloidnerux » Sa Aug 14, 2010 4:00 pm

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.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

Re: JS: dezimalzahl --> hexadezimalzahl

Beitrag von naums » Sa Aug 14, 2010 4:19 pm

^^. ich habe keine ahnung. :?
.globl truth
truth:
mov r0, #42
mov pc, lr

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: JS: dezimalzahl --> hexadezimalzahl

Beitrag von Xin » Sa Aug 14, 2010 5:22 pm

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);}
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

Re: JS: dezimalzahl --> hexadezimalzahl

Beitrag von naums » So Aug 15, 2010 8:04 pm

ähm... okay... ich probiers dann mal aus :P
.globl truth
truth:
mov r0, #42
mov pc, lr

Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

Re: JS: dezimalzahl --> hexadezimalzahl

Beitrag von naums » Mi Aug 18, 2010 6:50 pm

ä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. :?
.globl truth
truth:
mov r0, #42
mov pc, lr

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: JS: dezimalzahl --> hexadezimalzahl

Beitrag von cloidnerux » Mi Aug 18, 2010 8:55 pm

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.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

Re: JS: dezimalzahl --> hexadezimalzahl

Beitrag von naums » So Aug 22, 2010 9:21 am

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>
.globl truth
truth:
mov r0, #42
mov pc, lr

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: JS: dezimalzahl --> hexadezimalzahl

Beitrag von cloidnerux » So Aug 22, 2010 10:06 am

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" .
Redundanz macht wiederholen unnötig.
quod erat expectandum

Antworten