Formular Felder vorausfüllen

  • Ja, ich weiß ich habe keine Ahnung vom coden. Ein Link zur Lösung würde mir dann auch "schon" reichen. Aber irgendwie bin ich so blöd.

    Ich bin gerade dabei, kleine Helferlein zu bauen, die zwar jeder 30cent Rechner bewältigen kann, aber wäre halt was nettes.

    Das habe ich mir jetzt mit meinem Wissen und einem PHP Buch zusammengeschrieben. Funktioniert auch, irgendwie.
    Es kommt beim erstmaligen aufrufen: "Warning: Division by zero". Ist auch logisch warum. Am liebsten würde ich die Formularfelder vorausfüllen, damit die Fehlermeldung nicht mehr erscheint. Nurr wie mach ich das?

    Die Ausgabe der Zeit würde ich auch gern in XXh XXmin ausgeben und den Rest abknappsen.

    Wäre für Links oder evtl. Hilfe dankbar.

  • Aw: Formular Felder vorausfüllen

    Formularfelder mit Defaultwerten: Das ist so gesehen rein HTML.

    <input type="text" name="ladestrom" value="hier der defaultwert" />

    Das bringt so gesehen aber nocht nichts, wenn einer den Defaultwert löscht. Hier ist in PHP die Funktion empty() Dein Freund. Wenn irgendwas "empty", dann Fehlermeldung, ansonsten berechnen.

    Ausgabe in Stunden und Minuten:
    Das ist nur eine Berechnung eigentlich.
    z.B. $ladezeit = 4.7053
    floor() gibt die nächst kleinere Ganzzahl an, oder den eigentlichen Wert, wenn es eine Ganzzahl ist.

    $stunden = floor($ladezeit);

    Ergibt in dem Beispiel 4.

    Nun der Rest, also ladezeit - stunden:
    $rest = $ladezeit - $stunden;
    ergibt in dem Fall dann 0.7053 Stunden. Eine Stunde hat 60 Minuten, also
    $minuten = $rest * 60;

    Sind dann also 42.318 Minuten
    Also noch mit round() runden auf die gewünschten Nachkommastellen.

    Alles ungetestet und nur ein Schnellschuss.

    *** Link veraltet ***
    *** Link veraltet ***
    *** Link veraltet ***

    Theoretisch auch noch eine Prüfung, ob die Werte auch Ziffern sind und keine Buchstaben oder andere Zeichen ;)

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • Aw: Formular Felder vorausfüllen

    Danke habs gleich mal ausprobiert! Funzt super.

    Ist jetzt noch nicht schön gemacht, aber klappt herrlich. :freu: (und jetzt versteh ichs, das vorausfüllen war eine doofe idee)
    Mit dem prüfen schaue ich mir auch noch an.

    Ich hab dann noch ein Problem mit dem Komma und Punkt, dazu dann aber mal bei Gelegenheit ein neues Thema. ^^
    Vielen vielen Dank!

  • Aw: Formular Felder vorausfüllen

    Zitat von "Lunte" post=4841


    Ist jetzt noch nicht schön gemacht, aber klappt herrlich. :freu: (und jetzt versteh ichs, das vorausfüllen war eine doofe idee)
    Mit dem prüfen schaue ich mir auch noch an.


    irgendwie stimmt die Klammerung nicht

    Code
    if (empty($akku)) {
            echo 'Bitte den Kapazit&auml;tswert ihres Akkus und den Ladestrom ihres Laders in die daf&uuml;r vorgesehenen Felder eintragen';
    }
    	if (isset($akku)) {


    kerrektur ... die eine { ist soweit nach links gerutscht, das ich sie übersehen habe

    aber nochn Fehler

    Code
    if (isset($akku)) {
    	$ladezeit = $akku / $laden * $multi;


    sollte doch wohl sein

    Code
    if (isset($laden)) {
    	$ladezeit = $akku / $laden * $multi;

    oder wie wäre es mit

    Code
    function sicherdividieren($zahl, $divisor)
    {
      if ( $divisor ) $zahl /= $divisor;
      return( $zahl );
    }
    
    
    	$ladezeit = sicherdividieren($akku, $laden) * $multi;


    Es sollte mal Jemand die Mathematik "Revolutionieren" bzw "Reformieren"

    Gegenrechnung ....
    Irgendwas * NULL = NULL
    also
    Irgendwas / NULL = NULL

    bei (ist es ja auch das Ergebniss)
    NULL / Irgendwas = NULL

    Zitat von "Lunte" post=4841

    Ich hab dann noch ein Problem mit dem Komma und Punkt, dazu dann aber mal bei Gelegenheit ein neues Thema. ^^
    Vielen vielen Dank!


    Meinst Du jetzt (nur) die Landesübliche Dezimalversion
    oder auch das Tausendertrennzeichen


    simple (make English)
    $zahl = str_replace( ',' , '.' , $zahl );

    kompliziert

  • Aw: Formular Felder vorausfüllen

    Zitat von "800XE" post=4845

    kompliziert

    und dann noch die Version ....


    .... TausenerTrennung aber kein Dezimal

    $zahl_lang = strlen($zahl);
    $last_dot = strrpos($zahl,'.'); // str(r)pos

    strlen = Anzahl zeichen
    strrpos = Position // achtung, 1. Position nicht 1 sondern 0


    23.486

    strlen = 6
    strrpos = 2 // Problem 1 ist 0 .... korriegieren durch erhöhen

    strlen = 6
    strrpos = 3

    Code
    $zahl_lang = strlen($zahl);
    $last_dot = strrpos($zahl,'.') +1 ;
    if ( $zahl_lang - 3 == $last_dot )
    {
      könnte Tausendertrenner sein ... oder 3stelliges Dezimal
    }


    ähm, besser

    Code
    $zahl_lang = strlen($zahl);
    $last_dot = strrpos($zahl,'.');
    if ( $last_dot )
    {
      $last_dot++;
      if ( $zahl_lang - 3 == $last_dot )
      {
        könnte Tausendertrenner sein ... oder 3stelliges Dezimal
      }
    }

    oder

    Code
    if ( $last_dot++ )
    {
      if ( $zahl_lang - 3 == $last_dot )
  • Aw: Formular Felder vorausfüllen

    Nur zum Verständnis für mich.
    Mit ging es ja "nur" darum das nicht gleich losgerechnet wird

    isset sagt ja aus das wenn da ein wert steht, darfst du losmachen. So war es für mich egal ob ich nun $akku oder $laden dort einsetze. nicht egal?

    Die simple Variante (, .) habe ich verstanden. Beim Rest brauch ich noch eine Weile.
    Danke Danke. :)

  • Aw: Formular Felder vorausfüllen

    Zitat von "Lunte" post=4847

    So war es für mich egal ob ich nun $akku oder $laden dort einsetze. nicht egal?

    Da Du schon selbst das ODER ansprichst, solltest Du es dann imho auch nutzen ;)
    In deinem Fall geht er in die Schleife, wenn $akku gefüllt ist - $laden interessiert in diesem Fall nicht...

    if (!isset($akku) || !isset($laden))
    oder
    if (isset($akku) && isset($laden))

    /edit: ähhh - musste nochmal
    eine Prüfung auf Eingabe einer Zahl würde ich auch durchführen *** Link veraltet ***

  • Aw: Formular Felder vorausfüllen

    Zitat

    Mit ging es ja "nur" darum das nicht gleich losgerechnet wird


    Das ist noch ein anderes Thema.

    Prüfe einfach, ob das Formular bereits gesendet wurde.

    Also um den gesamten PHP-Bereich ein

    if(isset($_POST))
    {
    hier der eigentliche Code zur Berechnung und die Auswertung
    }

    Somit wird alles innerhalb der {} nur abgearbeitet, wenn der POST-Button auch geklickt wurde. Dennoch muss da dann die Prüfung rein, ob die Felder auch gültige Werte enthalten.

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • Aw: Formular Felder vorausfüllen

    Synonym
    Danke
    800XE
    So langsam steige ich durch deine beiden Posts durch. Hatte es gestern überhaupt nicht mehr gerallt. Aber deine Erweiterungen, auch wenn ich sie nicht wollte, finde ich gut.

    Soo viele Regeln für so eine kleine doofe Formel. ^^ Klasse, das ihr mir helft!