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