2016-10-16 17 views
2

Ich versuche, eine Snack-Maschine zu bauen, wo Sie Ihren Snack wählen können, erhalten den Preis und klicken Sie dann auf den Button zu bezahlen.PHP senden Schaltfläche in Echo

Like: Der Preis 0,60 € 0,05 (Button) 0,10 (Button) .... wenn Sie drücken 0,05-Taste wird der Preis reduzieren, um 0,55 €

Warum don‘ t bekomme ich ein "Test" -Echo, nachdem ich auf den Button geklickt habe?

Hier ist mein Code

<?php 
if(isset($_GET['mars'])) 
{ 
    $mars = "0,60"; 
    echo "Bitte Zahlen Sie noch <input type=\"button\" value=\"$mars\"> Euro<br>"; 
    echo "<input type=\"submit\" value=\"0,05\" name=\"fcent\">"; 
    if(isset($_GET['fcent'])) 
    { 
    echo "test"; 
    } 
} 

?> 
+0

Haben Sie ein Formular, mit dem Sie sich bewerben? – chris85

+0

Gibt es ein Formular-Tag in Ihrem Code? Zeigen Sie den Code, der das Formular erstellt –

Antwort

1

Zunächst scheint es in Ihrem Code keine Form-Tag zu sein. Ohne ein Formular-Tag wäre es ein Wunder, dass das Drücken dieses Buttons es tatsächlich über PHP abliefert. Mit anderen Worten, Sie müssen Ihre Formularelemente in einem <form></form> Tag umbrechen.

Zweitens ist die verschachtelte if: if(isset($_GET['fcent'])) nicht erreichbar, weil, wenn Sie die fcent Taste drücken; Die $_GET['mars'] ist nicht mehr im Geltungsbereich und da Ihr Code explizit ausgeführt werden soll, wenn SET ist, würde nichts passieren. Das Snippet unten nimmt diese 2 Punkte berücksichtigt und Sie können eine Feinabstimmung es noch weiter auf Ihre Bedürfnisse ...

HINWEIS:Sie müssen sicher sein, dass Ihre URL etwas ähnliches wie dies liest: http://localhost/index.php?mars=some-value

<?php 

    $mars  = "0,60"; 
    $payForm = "<form name='whatever' method='get' action=''><br>"; 
    $payForm .= "Bitte Zahlen Sie noch <input type=\"button\" value=\"$mars\"> Euro<br>"; 
    $payForm .= "<input type=\"submit\" value=\"0,05\" name=\"fcent\">"; 
    $payForm .="</form>"; 
    if(isset($_GET['mars'])){ 
     echo $payForm; 
    } 
    if(isset($_GET['fcent'])){ 
     echo $payForm; 
     echo "test"; 
    }