Fabian: Variablen für Java "eingeben"

Hallo!

ich habe eine kleine Javafunction gemacht zum Functionen zweiten Grades zu lösen. Hier ist der script:

--------------------------------------------------------------------

<html>

<head>

<script type="text/javascript">

var a=1
    b=3
    c=2
    delta=(b*b-4*a*c)
    sqrt=Math.sqrt(delta)

function show()

{

document.write("Si consideri una funzione di secondo grado del tipo <br/><br/> ax<sup>2</sup>+bx+c=0 </br></br>")
document.write("dove a="+a+" , b="+b+" , c="+c)

}

function solve()

{

if (a==0)

{

document.write("&raquo; si tratta di una funzione di primo grado </br>")
 document.write("&raquo; x = "+(-c)/b)

}

else if (0>delta)

{

document.write("&raquo; &Delta; = "+delta+"<br/>")
 document.write("&raquo; la funzione non possiede zeri")

}

else if (delta>0)

{

document.write("&raquo; &Delta; = "+delta+"<br/>")
 document.write("&raquo; x<sub>1</sub> = "+(-b+sqrt)/(2*a)+"<br/>")
 document.write("&raquo; x<sub>2</sub> = "+(-b-sqrt)/(2*a))

}

}

</script>

</head>

<body>

<table cellspacing="10" cellpadding="5" border="0">

<tr>
<td align="center"><script>show()</script></td>
</tr>

<tr>
<td><script>solve()</script></td>
</tr>

</table>

</body>

</html>

--------------------------------------------------------------------

Wie kann ich jetzt machen, dass man die Variablen a,b und c nicht in den Script eingeben muss, sondern zum Beispiel mit einem <form> ? Hauptsache der Surfer kann die Variablen entscheiden ;D

Viele Grüsse

  1. Hi Fabian,

    ich habe eine kleine Javafunction gemacht

    Nein hast du nicht - du hast eine JavaSCRIPTfunktion gemacht ;-)

    Merke: Java != Javascript

    var a=1
        b=3
        c=2
        delta=(b*b-4*a*c)
        sqrt=Math.sqrt(delta)

    Hier würde ich es vorziehen, es so zu schreiben:

    var a = 1;
    var b = 3;
    var c = 2;
    usw.

    Andernfalls müsstest du vermutlich die einzelnen Variablen mit Komman trennen.

    document.write("Si consideri una funzione di secondo grado del tipo <br/><br/> ax<sup>2</sup>+bx+c=0 </br></br>")

    Erst mal ist hier ein Fehler drin, da fehlt das Semikolon am Zeilenende! Und das nicht nur in dieser einen Zeile, sondern in jeder Zeile - eigentlich dürfte das Script gar nicht lauffähig sein - hast du schon mal probiert, ob es läuft? Hast du es auch mal in einem anderen Browser als dem fehlertoleranten Internet Explorer probiert?

    Weiterhin: Bist du dir bewusst, dass du durch document.write() den kompletten Inhalt der aktuellen Seite mit dem neuen Text überschreibst?!? Das also alles gelöscht und durch den Text ersetzt wird?

    Willst du den Text nicht lieber irgendwo in den bestehenden Seite einfügen? Mit innerHTML gehst das sogar ziemlich einfach (auch wenn das kein offizieller Standard ist, es wird aber von den verbreiteten Browsern unterstützt).

    <script>show()</script>

    Hier fehlt das zwingend erforderliche type="text/javascript" im script-Tag. Außerdem ist der script-Tag eigentlich nur in <head> erlaubt und nicht in <body>.

    Wie kann ich jetzt machen, dass man die Variablen a,b und c nicht in den Script eingeben muss, sondern zum Beispiel mit einem <form> ? Hauptsache der Surfer kann die Variablen entscheiden ;D

    Du kannst mit prompt() recht einfach einen Wert dir vom Benutzer eingeben lassen.

    Alternativ kannst dir auch ein Textfeld in die Seite einbauen, diesem eine ID geben und über document.getElementById('Textfeld-ID').value den Wert der darin steht auslesen.

    MfG, Dennis.

    1. Hallo Dennis.

      Erst mal ist hier ein Fehler drin, da fehlt das Semikolon am Zeilenende! Und das nicht nur in dieser einen Zeile, sondern in jeder Zeile - eigentlich dürfte das Script gar nicht lauffähig sein - hast du schon mal probiert, ob es läuft?

      Entweder überall Semikola oder ein Zeilenumbruch nach jeder Anweisung; beides ist erlaubt.

      Außerdem ist der script-Tag eigentlich nur in <head> erlaubt und nicht in <body>.

      Nö:

      The SCRIPT element places a script within a document. This element may appear any number of times in the HEAD or BODY of an HTML document.

      Einen schönen Donnerstag noch.

      Gruß, Ashura

      --
      sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
      „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
      [HTML Design Constraints: Logical Markup]
    2. Hello out there!

      Erst mal ist hier ein Fehler drin, da fehlt das Semikolon am Zeilenende!

      Falsch, es ist kein Fehler. Siehe <http://de.selfhtml.org/javascript/sprache/regeln.htm@title=allgemeine Regeln für JavaScript>.

      Und das nicht nur in dieser einen Zeile, sondern in jeder Zeile - eigentlich dürfte das Script gar nicht lauffähig sein - hast du schon mal probiert, ob es läuft? Hast du es auch mal in einem anderen Browser als dem fehlertoleranten Internet Explorer probiert?

      Hast du es denn probiert? Ein JavaScript-fähiger Client, der das Script nicht ausführen würde, wäre fehlerhaft.

      Außerdem ist der script-Tag eigentlich nur in <head> erlaubt und nicht in <body>.

      Falsch, 'script' ist fast überall erlaubt. Sonst würde die Methode document.write() zur Ausgabe auf einer Webseite gar keinen Sinn machen.

      See ya up the road,
      Gunnar

      --
      “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
      1. Hi Gunnar,

        Falsch, es ist kein Fehler. Siehe <http://de.selfhtml.org/javascript/sprache/regeln.htm@title=allgemeine Regeln für JavaScript>.

        Das war mir nicht bewusst - ich kenne das mit dem Zeilenumbruch sonst nur von Visual Basic ;-)

        Falsch, 'script' ist fast überall erlaubt. Sonst würde die Methode document.write() zur Ausgabe auf einer Webseite gar keinen Sinn machen.

        Stimmt - das wäre sonst nicht sonderlich sinnvoll - Ashura hat ja auch schon die entsprechende offizielle Stelle rausgesucht.

        Ich meine mich nur an entsprechende Postings zu erinnern, wo behauptet wurde, <script> in <body> wäre eigentlich nicht erlaubt, auch wenn es von allen modernen Browser unterstützt wird... Egal, jetzt weiß ich es besser ;-)

        Die Frage ist trotzdem, ob es sinnvoll ist, im <body> noch externe Javascripte nachzuladen - in mein Template Konzept würde das eigentlich sehr gut reinpassen...

        MfG, Dennis.

        --
        Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
        MySQLDBExport - Eine PHP Klasse für MySQL Dumps, neu Version 2.0.2
        Wenn Sie einen Schweizer Bankier aus dem Fenster springen sehen, springen Sie hinterher. Es gibt bestimmt etwas zu verdienen. (Voltaire)
        1. Hallo Dennis.

          Ich meine mich nur an entsprechende Postings zu erinnern, wo behauptet wurde, <script> in <body> wäre eigentlich nicht erlaubt, auch wenn es von allen modernen Browser unterstützt wird...

          Du meinst mit sehr hoher Wahrscheinlichkeit eigentlich das style-Element.

          Einen schönen Donnerstag noch.

          Gruß, Ashura

          --
          sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
          „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
          [HTML Design Constraints: Logical Markup]
    3. Vielen Dank für alles!
      Ich wusste zwar schon, dass ich eine Laie in Javascript bin, dass ich aber so viele Fehler machen würde war mir nicht bekannt X-)
      Vielen Dank für die Korrekturen, die ich sofort machen werde, obwohl der Script auch mit meinem Firefox Browser funktioniert.

      Grüsse

  2. Hello out there!

    ich habe eine kleine Javafunction gemacht

    Nein, http://de.selfhtml.org/intro/technologien/java.htm@title=Java ist was ganz anderes als http://de.selfhtml.org/javascript/intro.htm@title=JavaScript.

    var a=1
        b=3
        c=2
        delta=(b*b-4*a*c)
        sqrt=Math.sqrt(delta)

    Das Schlüsselwort 'var' gilt hier nur für a. Soll es auch für die anderen Variablen gelten, musst du Kommas setzen.

    In JavaScript sind Semikolons nach Anweisungen zwar optional, wenn ein Zeilenumbruch folgt; ich würde sie aber dennoch setzen.

    if (a==0)
    else if (0>delta)
    else if (delta>0)

    Damit hast du einen Fall vergessen.

    Wie kann ich jetzt machen, dass man die Variablen a,b und c nicht in den Script eingeben muss, sondern zum Beispiel mit einem <form> ?

    Wie in http://de.selfhtml.org/html/formulare/index.htm@title=Forumlare und <http://de.selfhtml.org/javascript/objekte/elements.htm@title=elements (Formularelemente eines Formulars)> beschrieben. Das JavaScript-Anwendungsbeispiel <http://de.selfhtml.org/javascript/beispiele/formulareingaben.htm@title=Formulareingaben überprüfen> sollte dir helfen.

    See ya up the road,
    Gunnar

    --
    “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)