2017-07-04 4 views
-1

Sorry im Voraus, wenn das ein wirklich dummer Fehler ist, aber ich schätze jegliche Hilfe, die gegeben werden kann.Warum funktioniert meine Post-Methode nicht?

Dies ist der Code, der diese Daten im Formular initialisiert. Sie sind Optionsfelder, die über eine SQL-Datenbank gefüllt werden.

echo "<form method='post' action='home.php'>"; 
$result = queryMySQL("SELECT Name FROM Quotees"); 
if ($result->num_rows == 0) { 
    $error = "<span class='error'>No people can be found</span><br><br>"; 
} else { 
    $numrow = $result->num_rows; 
    for ($count = 1; $count <= $numrow; $count++) { 
     $row = $result->fetch_array(MYSQLI_ASSOC); 
     $name = stripslashes($row['Name']); 
     echo '<input type="radio" name="choice" value="' . $name . '" />' . $name; 
     echo '<br>'; 
    } 
} 

Später im Code, den ich versuche, den Wert für den Zugriff auf gepflückt der POST-Methode verwendet wird, wie folgt:

$personPicked = stripslashes($_POST["choice"]); 
if ($person === $personPicked) { 
    //code 
} else { 
    echo "wrong answer"; 
} 

Der Fehler, den ich erhalten ist „Undefined index: Wahl“ auf der Linie, wo die Die POST-Methode wird aufgerufen.

ich senden Sie das Formular mit dem folgenden Code aus der Seite des PHP-Segment als HTML-Code

<div class="confirmButton"> 
<form action="home.php"> 
    <input type="submit" value="Confirm"> 
</form> 

Vielen Dank für jede Hilfe, die Sie meinen Code geben kann, warum nicht funktioniert/wie kann ich mich über Lösung des Problems.

+0

** Gefahr ** - 'stripslashes' ist nicht zum Schutz von Daten geeignet, die in HTML eingefügt werden sollen! Verwende 'htmlspecialchars'! – Quentin

+0

Können Sie var_dump() $ _POST Array? Wie übermitteln Sie das Formular? – BenRoob

+0

Sie müssen die Daten debuggen, um die Ursache des Problems zu finden. Sehen Sie sich die POST-Anfrage in den Entwicklertools in Ihrem Browser an. Sind die Daten da? Sehen Sie sich den HTML-Code an, den Sie generieren. Ist es richtig? Sind die Werte da? Haben Sie überprüft, dass ein Optionsfeld tatsächlich aktiviert ist? – Quentin

Antwort

1

Die Schaltfläche zum Senden befindet sich in einem verschiedenen Formular.

Wenn Sie darauf klicken, senden Sie das Formular, dass die Optionsfelder nicht enthält.

Sie müssen die Senden-Schaltfläche und die Optionsfelder in das gleiche Formular.

+0

Ich habe dies getan - ich hatte es ursprünglich so, aber alles wurde ein bisschen durcheinander während des Debuggens. – mysterykid

+0

Okay, das scheint überhaupt keinen Unterschied zu machen, weil mein Problem nicht das ist, was ich dachte, danke sowieso – mysterykid

Verwandte Themen