Antworten auf deine Fragen:
Neues Thema erstellen

Formeln aus einem Textfeld ausrechnen?

T

timbeutel

Guest

Hallo,

gibt es einen Weg eine Formel die ich in einem Textfeld eingegeben habe per klick ausrechnen zu lassen?

Ich möchte z.b. 2*3+(4*2) in ein Textfeld eingeben und php gibt mir dann auf Klick 14 zurück und nicht 20.

Danke ;)
 

Duddle

Posting-Frequenz: 14µHz

AW: Formeln aus einem Textfeld ausrechnen?

Du könntest die Eingabe in eval() stecken, nachdem du alles was nicht 0-9, +, -, /, *, ( oder ) ist entfernt hast.


Duddle
 

vandenhayes

Noch nicht viel geschrieben

AW: Formeln aus einem Textfeld ausrechnen?

eine sehr einfache Sache ist halt sich die Werrte aus deinem Formelement an dich selber zu schicken. Da kann man ja dann verfahren(wenn Werte gesetzt wurden) wie man will. Hoffe Dir damit etwas geholfen zu haben.

Code:
<?php
 
 $meinErebnis = 0;
 if(isset($_POST['wert1'] && isset($_POST['wert2'])
 {
  $meinErgebnis = $_POST['wert1'] + $_POST['wert2'];
 }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[URL]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/URL]">
<html xmlns="[url=http://www.w3.org/1999/xhtml]XHTML namespace[/url]">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Ohne_Titel_1</title>
</head>
<body>
 <div>
  <form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
   <input type="text" name="wert1"/>
   <input type="text" name="wert2"/>
   <input type="submit" value="klick me" />
  </form>
 </div>
 <div>
  <?php
   
   if($meinErgebnis > 0)
   {
    echo '<h1>Das Ergebnis deiner Eingabe beträgt :'.$meinErgebnis.'</h1>';
   }
   else
   {
    echo '<h1>Leider ist keine Eingabe erfolgt</h1>';
   }
   
  ?>
 </div>
</body>
</html>
 

ovbb

es gibt für alles eine weg

AW: Formeln aus einem Textfeld ausrechnen?

Eingabe parsen und einzelne Werte heraus filtern ggf. polnische Notation verwenden :)

Edit: Zu deiner Frag mit den falschen Ergebnissen: Multiplikation und Addition sind nicht assoziativ (sollte so passen ;-) ). Auf Klammern achten ... Punkt- vor Strich-Rechnung

Edit2: Hab mir deine Frage nochmal durchgelesen. Was möchtest du jetzt denn eigentlich?

14 ist ja das richtige Ergebnis von 2*3+(4*2) = 14 da 2*3 = 6 und 4*2 = 8; Laut den von dir gesetzten Klammern wird die Addition als letztes ausgeführt, ergo ergibt sich 6+8 = 14 und nicht 20. möchtest du 20 erhalten müsste es lauten: (2*3+4) * 2 :)
 
Zuletzt bearbeitet:
T

timbeutel

Guest

AW: Formeln aus einem Textfeld ausrechnen?

Vielen dank für die Antworten.

Also was ich eigentlich genau will ist nur 1 Textfeld oder ne Textarea in das/dem ich eine ganze Formel eingebe im Format 2*3+(9*4)/2 z.B. und php mir einfach das Ergebnis ausrechnet.

Das ganze soll für ein Bauzeichner sein der einfach seine ganzen einzelnen Maße in ein Textfeld eingeben kann und dann automatisch die Fläche oder die Summe ausgerechnet wird.
 
T

timbeutel

Guest

AW: Formeln aus einem Textfeld ausrechnen?

ganz genau ;)

wolfram macht genau das was ich möchte.. nur wie sieht jetz der php-code dazu aus? ich möchte das nämlich in meine Seiten einbauen.
 

Duddle

Posting-Frequenz: 14µHz

AW: Formeln aus einem Textfeld ausrechnen?

Ein einfacher Taschenrechner ist wie oben beschrieben in ein paar Zeilen umsetzbar. Die komplette oder auch nur ein kleiner Teil der Funktionalität von Wolfram|Alpha wird dich mehrere Mannjahre kosten.


Duddle
 
T

timbeutel

Guest

AW: Formeln aus einem Textfeld ausrechnen?

Nun gut, Wolfram|Alpha wollt ich auch nicht nachbasteln ;)

Du schreibst eval(). Ok, habe mir eval angeschaut also müsste ich die Eingabe erst zerstückeln und dann zu Fuss gehen. Ich dachte vielleicht gäbe es einen einfachen Weg den String einfach irgendwie umzuwandeln und ihn gleich berechnen zu lassen.

Wäre es frech um einen fertigen Code zu bitten? Du schreibst: Ein einfacher Taschenrechner ist wie oben beschrieben in ein paar Zeilen umsetzbar. Habe keine Ahnung wie. ;)
 

ovbb

es gibt für alles eine weg

AW: Formeln aus einem Textfeld ausrechnen?

wär ein nettes Projekt wenn mich dir Profs nicht schon zugeschüttet hätten ... wo mir gerade auffällt ... ab in die Vorlesung :)
 

Duddle

Posting-Frequenz: 14µHz

AW: Formeln aus einem Textfeld ausrechnen?

Wäre es frech um einen fertigen Code zu bitten? Du schreibst: Ein einfacher Taschenrechner ist wie oben beschrieben in ein paar Zeilen umsetzbar. Habe keine Ahnung wie. ;)

Wäre es frech, um etwas Eigeninitiative zu bitten?

1. Wie sieht dein Formular aus, wie wertest du es aus? Wenn du das nicht weisst, schau dir eines der vielen im Web auffindbaren Tutorials dazu an.
2. Wie entfernst du aus einem String mit PHP ungewünschte Zeichen? Wenn du das nicht weisst, lies dir zwei der vielen im Web auffindbaren Tutorials dazu durch.
3. Was bewirkt eval()? Welche Eingabeparameter hat es, welche Rückgabewerte sind möglich (und unter welchen Konditionen), wie fängst du Fehler ab? Wenn du das nicht weisst, lies dir die Anleitung nochmal durch und versuch sie zu verstehen.

Wenn du diese 3 Fragen zufriedenstellend beantworten kannst - und die Antworten auch verstehst -, ist der letzte Schritt des Zusammenfügens nur noch Formsache.


Duddle
 
T

timbeutel

Guest

AW: Formeln aus einem Textfeld ausrechnen?

Wie man aus einem String unerwünschte Zeichen filtert hab ich schonmal gemacht (bei E-Mails z.b.) und die Funktion von eval() hab ich auch gelesen und verstanden.

Nur beim Zusammentragen von dem ganzen, tat ich mich etwas schwer und wollte einen Tipp in Form von:

PHP:
$formel = "2*3+(4*2)"; 

if(preg_match("#([^0-9+\-*/\(\)]+)#", $formel)) 
    die('Ungültige Zeichen gefunden.'); 

echo eval('return ' . $formel . ';');
wie es mir ein netter Helfer beschrieben hat.

Muss gestehen, das ich etwas faul dazu war ;)

Also ich bedanke mich vielmals bei allen die geantwortet haben, sehr nett!

Bis bald ;)
 

ovbb

es gibt für alles eine weg

AW: Formeln aus einem Textfeld ausrechnen?

man müsste die formel von innen nach außen zerpflücken.

bei: 2*3+(4*2) also erster den teil in der klammer und danach den rest.

ergo müsste man z.B. die letze öffnende klammer im string suchen und deren ergebnis berechnen. diese zwischenspeichern und mit dem rest der ihr umschließenden klammer weitermachen bis man den ganzen string abgearbeitet hat.
 

SineTempore

Nicht mehr ganz neu hier

AW: Formeln aus einem Textfeld ausrechnen?

so sollte es funktionieren:
PHP:
eval('$ergebnis = '.$stringInDemNurGültigeZeichenSind);
echo $ergebnis;

mit eval initialisierst du die variable ergebnis und kannst sie dir dann ausgeben lassen.
 

vandenhayes

Noch nicht viel geschrieben

AW: Formeln aus einem Textfeld ausrechnen?

hmm ..alles so lala, die ganzen Lösungsansätze. Theoretisch dürfte er nur Zeichen vorgeben, die genutzt werden, um dann daraus die entsprechende Formel zu generieren.. Alles andere wird sonst ein großes Disaster beim auslesen.
Zusätzlich müßte man eine Logik für mathematische Berechnungen einfügen, wie auch schon einige Vorredner gesagt hatten.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.564
Beiträge
1.538.064
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben