php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2010

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 24.03.2010, 19:05  
Neuer Benutzer
 
Registriert seit: 24.03.2010
Beiträge: 3
PHP-Kenntnisse:
Anfänger
Synzierly befindet sich auf einem aufstrebenden Ast
Standard Taschenrechnerforumular

Hallo zusammen,
Ich hab folgendes Problem, ich bin gerade an PHP dran und möchte mir einen Taschenrechner bauen. Habe aber Probleme, er gibt das Ergebnis auf einmal nicht mehr aus und außerdem möchte ich, dass die Radio-Buttons angeklickt bleiben, deswegen auch das checked. Funktioniert aber nicht :/ ?

PHP-Code:
<form action="aufgabe41.php" METHOD="post">
    <p>
     <input type="radio" name="Operator" value="<?php 
    
if(isset($_POST["Operator"])){
      if(
$_POST["Operator"]=="+"){
        echo 
"checked";
      }
    }
  
?>
       > Addieren<br>   
  <input type="radio" name="Operator" value="<?php 
    
if(isset($_POST["Operator"])){
      if(
$_POST["Operator"]=="-"){
        echo 
" checked";
      }
    }
  
?>"
       > Subtrahieren<br>
     
  <input type="radio" name="Operator" value="<?php 
    
if(isset($_POST["Operator"])){
      if(
$_POST["Operator"]=="*"){
        echo 
"checked";
      }
    }
  
?>"
      > Multiplizieren<br>
  
  <input type="radio" name="operator" value="<?php 
    
if(isset($_POST["Operator"])){
      if(
$_POST["Operator"]=="/"){
        echo 
"checked";
      }
    }
  
?>"
      > Dividieren<br>
    </p>
    <h1>Mit welchen beiden Zahlen soll gerechnet werden ?</h1>
    <table border="0">
     <tr>
      <td>1.Zahl</td>
      <td><input name="zahl1" size="20" maxlength="30" value="<?php 
          
if( isset($_POST["zahl1"])){
            echo 
$_POST["zahl1"];
           } else { 
            echo 
"";
          }
         
?>"
       > 
      </td>
     </tr>
     <tr>
      <td>2.Zahl</td>
      <td><input name="zahl2" size="20" maxlength="30" value="<?php 
          
if( isset($_POST["zahl2"])){
            echo 
$_POST["zahl2"];
           } else { 
            echo 
"";
          }
         
?>"
        />  
      </td>
     </tr>
     <tr>
      <td>Ergebnis</td>
      <td><input name="ergebnis" size="20" maxlength="30" value="<?php 
      $Operator
=$_POST["Operator"];
      
$zahl1=$_POST["zahl1"];
      
$zahl2=$_POST["zahl2"];
       if (
$Operator=="+"){$ergebnis=$zahl1+$zahl2;}
       if (
$Operator=="-"){$ergebnis=$zahl1-$zahl2;}
       if (
$Operator=="*"){$ergebnis=$zahl1*$zahl2;}
       if (
$Operator=="/"){$ergebnis=$zahl1/$zahl2;}
        echo 
"$ergebnis"?>"
      ></td>
     </tr>
   </table>
   <input value="Absenden" type="submit">
   <input  name="reset" value="reset" type="reset">
  </form>
   </div>
Synzierly ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 24.03.2010, 20:10  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Zitat:
Funktioniert aber nicht :/ ?
Is generell ne schlechte Darstellung des Fehlverhaltens.
Das kann für uns tausend Dinge bedeuten.

Was mir als erstes auffällt sind die fehlenden HTML-Grundlagen!
Ein Radio-Button, den Du checked setzen willst wird bspw. so aufgebaut:
Code:
<input type="radio" name="Operator" value="addieren" checked />
Du haust das checked in den Value, das bringt für Dein Vorhaben nichts.
Außerdem gehört in den Value der Wert, den Du später per IF abfragst (+, - /, *) !

Dann zum Thema Ausgabe.
Habe grad keine Lust zu testen und kann deshalb nicht sagen, ob das was damit zu tun hat,
aber grundlegend solltest Du dem Input-Type einen type mitgeben:
Code:
// Deine Variante:
<input name="ergebnis" size="20" maxlength="30" value="..." />

// Eigentlich gehört es so
<input type="text" name="ergebnis" size="20" maxlength="30" value="..." />
Arne Drews ist offline  
Alt 25.03.2010, 18:21  
Neuer Benutzer
 
Registriert seit: 24.03.2010
Beiträge: 3
PHP-Kenntnisse:
Anfänger
Synzierly befindet sich auf einem aufstrebenden Ast
Standard

Also , die HTML Grundlagen habe ich einfach nicht mit kopiert ,aber hier hänge ich sie noch einmal an für dich.
So , das mit dem Type ist nicht der Grund dafür, weil 1. es trotzdem nichts erscheint, und 2. es ja vorher auch ohne funktioniert hat!
Das was mich irritert ist, das es wie es hier steht , bei einem anderen funktioniert, nur bei mir nicht, könnte es sein dass ich irgendetwas falsch geschrieben habe ?
Es kommt nämlich garnichts in dem untersten kästchen raus.
Und der reset button funktioniert leider auch nicht, da tut sich nämlich nichts.

PHP-Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title></title>
   <link type="text/css" rel="stylesheet" href="./phpgrundl.css">
    </head>
    <body>
  <div id="Inhalt">
        <h1>Calculator PHP</h1>
    <form action="aufgabe41.php" METHOD="post">
    <p>
     <input type="radio" name="Operator" value="<?php 
    
if(isset($_POST["Operator"])){
      if(
$_POST["Operator"]=="+"){
        echo 
"checked";
      }
    }
  
?>
       > Addieren<br>   
  <input type="radio" name="Operator" value="<?php 
    
if(isset($_POST["Operator"])){
      if(
$_POST["Operator"]=="-"){
        echo 
" checked";
      }
    }
  
?>"
       > Subtrahieren<br>
     
  <input type="radio" name="Operator" value="<?php 
    
if(isset($_POST["Operator"])){
      if(
$_POST["Operator"]=="*"){
        echo 
"checked";
      }
    }
  
?>"
      > Multiplizieren<br>
  
  <input type="radio" name="operator" value="<?php 
    
if(isset($_POST["Operator"])){
      if(
$_POST["Operator"]=="/"){
        echo 
"checked";
      }
    }
  
?>"
      > Dividieren<br>
    </p>
    <h1>Mit welchen beiden Zahlen soll gerechnet werden ?</h1>
    <table border="0">
     <tr>
      <td>1.Zahl</td>
      <td><input name="zahl1" size="20" maxlength="30" value="<?php 
          
if( isset($_POST["zahl1"])){
            echo 
$_POST["zahl1"];
           } else { 
            echo 
"";
          }
         
?>"
       > 
      </td>
     </tr>
     <tr>
      <td>2.Zahl</td>
      <td><input name="zahl2" size="20" maxlength="30" value="<?php 
          
if( isset($_POST["zahl2"])){
            echo 
$_POST["zahl2"];
           } else { 
            echo 
"";
          }
         
?>"
        />  
      </td>
     </tr>
     <tr>
      <td>Ergebnis</td>
      <td><input type="text" name="ergebnis" size="20" maxlength="30" value="<?php 
      $Operator
=$_POST["Operator"];
      
$zahl1=$_POST["zahl1"];
      
$zahl2=$_POST["zahl2"];
       if (
$Operator=="+"){$ergebnis=$zahl1+$zahl2;}
       if (
$Operator=="-"){$ergebnis=$zahl1-$zahl2;}
       if (
$Operator=="*"){$ergebnis=$zahl1*$zahl2;}
       if (
$Operator=="/"){$ergebnis=$zahl1/$zahl2;}
        echo 
"$ergebnis"?>"
      ></td>
     </tr>
   </table>
   <input value="Absenden" type="submit">
   <input  name="reset" value="reset" type="reset">
  </form>
   </div>
    </body>
</html>
Synzierly ist offline  
Alt 25.03.2010, 18:30  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Da wird doch der Hund in der Pfanne verrückt !!!
Kannst Du BITTE mal lesen, was ich in der ersten der beiden Codeboxen oben drüber gepostet habe
und dann mal mit dem vergleichen, was Du IMMER NOCH machst (Quelltext)!

Dann hat ein Input immer einen Standard-Typ, der wie erwartet ein TEXT ist, dennoch gibt man sowas mit an.

Bevor solche grundlegenden Dinge nicht korrigiert sind, schau ich mir den Rest gar nicht mehr an.
Arne Drews ist offline  
Alt 25.03.2010, 18:54  
Erfahrener Benutzer
 
Registriert seit: 27.06.2009
Beiträge: 498
PHP-Kenntnisse:
Anfänger
cetalian sorgt für eine eindrucksvolle Atmosphärecetalian sorgt für eine eindrucksvolle Atmosphäre
Standard

Ist doch eh eine Hausaufgabe .
cetalian ist offline  
Alt 25.03.2010, 20:58  
Neuer Benutzer
 
Registriert seit: 24.03.2010
Beiträge: 3
PHP-Kenntnisse:
Anfänger
Synzierly befindet sich auf einem aufstrebenden Ast
Standard

Ich habe mir das gründlich durchgeguckt, das problem dabei ist einfach, dass ich das, was du mir gesagt hast, nach unserem Lehrer nicht machen darf.
Da ich diese nach dir geschilderten " grundlegenden" Sachen schon alle durchgegangen bin und immer noch alles nicht funktioniert bin ich ja erst zu diesem forum gekommen.

@ cetalian: Willst du damit irgendetwas sagen? Bin ich deswegen nicht willkommen ? Oder wie habe ich diese Anmerkung zu verstehen ?

Geändert von Synzierly (25.03.2010 um 21:03 Uhr).
Synzierly ist offline  
Alt 25.03.2010, 21:08  
Erfahrener Benutzer
 
Registriert seit: 06.04.2009
Beiträge: 251
PHP-Kenntnisse:
Fortgeschritten
BlackSpirit befindet sich auf einem aufstrebenden Ast
BlackSpirit eine Nachricht über MSN schicken
Standard

PHP-Code:
<input type="radio" name="Operator" value="+" <?php 
if($_POST["Operator"]=="+"){
  echo 
"checked";
}
?>>Addieren
BlackSpirit ist offline  
Alt 25.03.2010, 21:09  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.991
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Oder wie habe ich diese Anmerkung zu verstehen ?
Dass wir hier kein Hausaufgabenservice sind. Die Dinger sind nicht umsonst da. Erst dadurch, dass Du sie erledigst, lernst Du etwas. U.a. die Recherche von Informationen und die Umsetzung (Abstraktion). Indem Dir hier alles vorgebetet wird, ist Dir nicht geholfen.

[MOD: Thread geschlossen]

Ich bitte alle fleißigen Helfer um Verständnis.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php input type=\radio\ hochzählen, $_post operator php, $_post zahl1, ? $_post[\'operator\'] : \'\';, taschenrechner php isset

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:34 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum