Wenn ein Wert von HTML-Auswahlliste in PHP eine variable
Ich habe folgenden code in meinem php-Seite
Ich bin versucht zu speichern, der Wert der Auswahl-Liste eine variable in mein php-Seite.
Kann jemand bitte helfen?
$state_list= <<<HTML <select name="state">
<option value="0"></option>
<option value="1">ok</option>
<option value="2">not-ok</option>
</select>
HTML;
echo "<table>";
while($row = mysql_fetch_array($result1))
{
echo "<tr>";
echo "<td>" . $row['task'] . "</td>";
echo "<td>" . $row['task_desc'] . "</td>";
echo "<td>"; echo $state_list; echo "</td>";
echo "</tr>";
}
echo "</table>";
if(isset($_GET['state'])) {
$stat=$_GET['state'];
echo $stat;
}
InformationsquelleAutor Hasitha | 2012-11-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit deinem Beispielcode, du bist Speicherung der gesamten Liste in eine variable in PHP (und es sieht ungültig ist, werden Sie brauchen, um die HTML-Datei auf eine zweite Linie, so):
Werden, wenn Sie versuchen, um die tatsächlichen übermittelten Wert der select-Liste (sobald das Formular gesendet wird), Sie können es entweder durch
$_GET['state']
oder$_POST['state']
je nach der Methode, die Ihr Formular Absenden wie:UPDATE (Ausgabe des Formulars?)
Von Ihrem letzten Bearbeiten, wie es aussieht, bist du nicht, den tatsächlichen
select
Liste innerhalb eines<form></form>
block (was müssen Sie tun, um tatsächlich senden die Wert). Ein einfaches Beispiel ist wie folgt:Habe ich auch ein
submit
-Taste, um Ihnen einen Weg, um das Formular abschicken =P.Allerdings, Sie gehen zu Begegnung ein Problem mit dieser Methode, weil Sie benötigen eine separate
select
-Liste für jede Zeile in Ihren Ergebnissen. Weil dieses, die Sie tatsächlich benötigen eine separate form für jede Zeile in Ihren Ergebnissen (oder einige zusätzliche javascript-code, aber wir ' ll lassen, dass man für einen regnerischen Tag).Auch, da müssen Sie einen Wert für jede einzelne Zeile, müssen Sie eine zweite (versteckte) Feld, um zu sagen, welche Zeile ausgewählt wurde. Hier ist ein block der Beispielcode, der sollte in der Lage sein, dies zu tun für Sie:
Das problem mit diese Methode ist, dass Sie eine
Submit
- Taste auf jede einzelne Zeile. Während dieser arbeiten wird und ich habe gesehen, dass es an zahlreichen stellen vor, dass es nicht wirklich optisch Ansprechend. Wenn dies ungeeignet ist, für Ihre Bedürfnisse, könnten Sie aktualisieren dieselect
Liste automatisch senden, wenn ein Wert ausgewählt ist. Um dies zu tun, aktualisieren Sie einfach die<select>
tag:<select name="state" onchange="this.form.submit()">
. Wenn Sie dies tun, Sie könnten entfernen Sie diesubmit
-Taste aus der Ausgabe-Schleife oben.Ist es möglich, reichen Sie nur die Variablen, nicht die ganze Seite?
InformationsquelleAutor newfurniturey
PHP ist eine serverseitige Sprache, die Sie haben, um das Formular abschicken und dann abrufen der Daten per POST oder GET - so etwas wie dieses..
haben und dann die Daten zurück, die Sie verwenden, die entsprechenden $_GET['Zustand']; oder $_POST['Staat'];
Ist es auch gängige Praxis, um zu überprüfen, dass die GET-oder POST-variable existiert, bevor Sie es verwenden, viel wie diese.
<form method="get">
; dieaction
ist die URL, sendet er das Formular an.short open tags sind in der Regel nicht empfohlen..stackoverflow.com/questions/200640/...
Sie wissen, Sie können nur Bearbeiten, meine Antwort für kleine Verbesserungen/Fehler.
Danke, kann ich nicht mit "if(isset($_GET['Zustand']))" da es sich um eine Auswahl-Liste?
Ja, Sie können, ich werde hinzufügen, dass die Antwort.
InformationsquelleAutor Wez