Ergebnis is Textfeld einfügen lassen

Hallo liebe Gemeinde.

Ich habe ein kleines Problem.
Und zwar: Ich habe einen kleinen Rechner gebaut, der 2 Zahlen zusammenrechnet.
Dazu habe ich 2 Textfelder erstellt, in die man die Zahlen eingeben kann, und einen Button, auf den man klicken kann, wenn das Ergebnis berechnet werden soll.
Gibt es eine Möglichkeit das Ergebnis in einem dritten Textfeld ausgeben zu lassen??
Ich habe seit 2 Wochen gesucht und gesucht, aber nichts herausgefunden.
Ich hoffe, das ihr mir helfen könnt, ich habe keine Ahnung mehr, was ich machen könnte.

Ich habe hier den link, wo dieser Rechner liegt und den Link für die Seite, wo die Ergebnis rauskommt.

Der Rechner:
http://patrick0engel.xxpro.net/nr1.php

Das Ergebnis erscheint auf dieser Seite:
http://patrick0engel.xxpro.net/nr2.php

Ich freue mich über jede Antwort
mit freundlichen Grüßen
Patrick

P.S.: wie kann man eigentlich Textfelder, wie auf der oben angegebenen Seite, nur für Zahlen definieren, also das man Buchstaben garnicht erst eingeben kann???

Eigentlich ganz einfach:

Du gibst dem Ergebnis-Feld einfach einen parameter „value=’$ergebnis’“

Ich denke deine rechnung ist (vereinfacht) so:

$Ergebnis = $Feld1 + $Feld2

Grüße

ZeroEnna

Hallo,

eine Möglichkeit ist das gganze über Ajax zu erledigen. Das würde dann so aussehen:

 Eine PHP-Testseite
 function createXMLhttp(){
 try {
 xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
 } catch (e) {
 try {
 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
 } catch (E) {
 xmlhttp = false;
 }
 }
 if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
 try {
 xmlhttp = new XMLHttpRequest();
 } catch (e) {
 xmlhttp=false;
 }
 }
 if (!xmlhttp && window.createRequest) {
 try {
 xmlhttp = window.createRequest();
 } catch (e) {
 xmlhttp=false;
 }
 }
 }
 function handleHttpState(){

 if (xmlhttp.readyState == 4){
 if (xmlhttp.status == 200) {
 parseData();
 } else {
 alert("Error on refreshing data!");
 }
 }
 }
 function handleHttpState(){

 if (xmlhttp.readyState == 4){
 if (xmlhttp.status == 200) {
 parseData();
 } else {
 alert("Error on refreshing data!");
 }
 }
 }

 function parseData(){
 var xmlDocument = xmlhttp.responseXML;
 var response = xmlhttp.responseText;
 document.forms[0].ergebnis.value = response;
 }
 function calc(){
 try{
 createXMLhttp();
 xmlhttp.onreadystatechange = handleHttpState;
 query = "zahl1=" + zahl1 + "&zahl2=" + zahl2;
 page = 'nr2.php';
 xmlhttp.open("POST", page, true);
 xmlhttp.setRequestHeader("Method", "POST " + page + " HTTP/1.1");
 xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
 xmlhttp.send(query);
 }catch(error){
 alert("error on sendRequest:\n" + error);
 }
 }

Rechner

Zahl 1:

Zahl 2:

Das Ergebnis:

Gruß, Stephan

aber wenn ich dem feld „value=’$ergebnis’“ gebe, dann zeigt der das im Textfeld an, und das will ich nicht ^^

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Wow, o.O
ich bin erstaunt ^^

aber ich muss zugeben, das ich davon keine ahnung habe und in php auch neuling bin, hätte ich vielleicht am anfang erwähnen sollen, sorry.

aber danke für deine hilfe.
es sollte möglichst ganz in php ablaufen, kein javascript oder sowas.

aber wenn ich dem feld „value=’$ergebnis’“ gebe, dann zeigt
der das im Textfeld an, und das will ich nicht ^^

In Deinem ersten Posting hast Du doch geschrieben, dass Du genau das willst!?
Vielleicht solltest Du nochmal genauer beschreiben, was Du haben willst.

Gruß, Stephan

hmm, ok, ich bin was verwirrt.

Ich meine, das wenn ich auf den Absendenbutton klicke, das dann die Summe der beiden Zahlen in diesem dritten Feld erscheint.
Wenn noch keine Zahlen eingegeben sind, dann soll in dem dritten Feld das Wort „Ergebnis“ stehen.
Ich habe es ja bis jetzt nur hingekriegt, das wenn ich auf Absenden klicke, das Ergebnis auf einer anderen Seite angezeigt wird. Und dieses Ergebnis, was da angezeigt wird, soll in dem dritten Feld angezeigt werden und nicht auf der neuen seite.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

ok,
dann mach es so:

$value="Ergebnis";
if(isset($\_POST['zahl1']) && $\_POST['zahl1'] != "" && isset($\_POST['zahl2']) && $\_POST['zahl2'] != ""){
 $value=(int)$\_POST['zahl1']+(int)$\_POST['zahl2'];
}
?\>



 Eine PHP-Testseite

Rechner

Zahl 1:

Zahl 2:

Das Ergebnis:

Gruß, Stephan

vielleicht noch ein paar erklärende Worte :wink:

value auf „Ergebnis“ setzen

$value=„Ergebnis“;

value nur überschreiben, wenn die beiden Zahlen gepostet wurden

if(isset($_POST[‚zahl1‘]) && $_POST[‚zahl1‘] != „“ &&
isset($_POST[‚zahl2‘]) && $_POST[‚zahl2‘] != „“){
$value=(int)$_POST[‚zahl1‘]+(int)$_POST[‚zahl2‘];
}
?>
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd“>

Eine PHP-Testseite

in action eintragen, dass dieselbe page für das Ergebnis verantwortlich ist, also nr1.php

Rechner

Zahl 1:

Zahl 2:

Das
Ergebnis:

value ausgeben

Gruß, Stephan

Hallo Patrick,

Also das was du bis jetzt machen wolltest ist eine sache die ich erst mal rein javascript basierend machen würde.

Beispiel:

Berechnung
+

=

Wenn du es in PHP machen musst (Schule?) dann nimm das script von Stephan.

Wenn du dich mit PHP beschäftigen willst schau dir mal
http://schattenbaum.net/php/
an. ist zum einstieg in PHP sehr nett.

zu deiner Frage ob man in HTML ein Feld auf Zahlen beschränken kann:
Nein das geht in HTML nicht. du musst Textfelder immer nach dem Eintragen validieren und prüfen ob die eingabe so vorgenommen wurde wie sie vorgesehen war.

Gruß

Hey, danke, das war die Lösung

vielen Dank

Grüße
Patrick

Hallo Patrick,

Also das was du bis jetzt machen wolltest ist eine sache die
ich erst mal rein javascript basierend machen würde.

Gut, aber von javascript hab ich keine ahnung, aber trotzdem danke =)

Beispiel:

http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“>

Berechnung

=

Wenn du es in PHP machen musst (Schule?) dann nimm das script
von Stephan.

ja, das hab ich auch genommen, ich hätte auch deine lösungen genommen, aber die vorschrift war halt rein php scripten -.-

Wenn du dich mit PHP beschäftigen willst schau dir mal
http://schattenbaum.net/php/
an. ist zum einstieg in PHP sehr nett.

Danke für den tipp, werd ich beizeiten mal reingucken

zu deiner Frage ob man in HTML ein Feld auf Zahlen beschränken
kann:
Nein das geht in HTML nicht. du musst Textfelder immer nach
dem Eintragen validieren und prüfen ob die eingabe so
vorgenommen wurde wie sie vorgesehen war.

Gruß

hmm, ok, aber bei nem rechner ist es denk ich mal klar das da nur zahlen reinkommen können ^^
naja, trotzdem danke für deine hilfe

Gruß
Patrick