PHP input type hidden id zu bekommen
ich will, wenn Benutzer wählen Sie ein student-name, um die Schüler-id als hidden-input zu verwenden, es auf der nächsten Seite , das problem ist, wenn ich dies nur Hinzugefügt, mein code zeigt nicht alle Studierenden Liste zur Auswahl , es zeigt nur ein student Namen ( der erste in der Datenbank gespeichert ) m-irgendwelche Ideen ? !
mein code
$sql = "SELECT s.Sname, e.PID , s.SID
from student AS s
INNER JOIN evaluator AS e
WHERE (e.EID1 = '$id' AND s.PID = e.PID) OR (e.EID2 = '$id' AND s.PID = e.PID)
GROUP BY s.Sname ";
$result = mysql_query ($sql, $connection);
echo "<tr><th >Student Name <font size='4'></font></th>";
echo "<td><select id='Sname' name='Sname' >";
echo "<option value='' selected='selected'>--</option> ";
while( $row = mysql_fetch_array($result))
{
echo "<option value='$row[Sname]' >$row[Sname]</option> ";
echo " <input type ='hidden' name='SID' value='".$row['SID']."' >;
}
InformationsquelleAutor user1806136 | 2012-11-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist, das Sie erstellen mehrere
<input>
mitname='SID'
und die empfangende Seite wird wohl nur annehmen, der erste. Sie brauchen, um zu erstellen, diese als array statt mit[]
In der empfangenden Seite, überprüfen Sie den Inhalt mit
var_dump($_POST['SID'])
. Es wird ein array, und Sie können Durchlaufen Sie mit einemforeach()
.Ich beachten Sie, dass Sie nisten
<input>
innen<option>
s. Das ist wohl kein guter Ansatz ( ich glaube nicht, dass es gültig ist HTML). Speichern Sie stattdessen alleSID
in ein array und Schleife zweimal zu erstellen Sie Ihre Eingaben.Dann Durchlaufen Sie zweimal zu bauen, wählen Sie Optionen, und die versteckten Eingänge:
Zum Thema valides HTML... ich auch sehen, eine verirrte schließen
</font>
.<font>
ist veraltet, und stattdessen, Sie sollten mit CSS zu definieren, die schriftart-Eigenschaften.Update Kommentare nach:
Wenn Sie möchten, übergeben Sie die SID zusammen mit dem Wert (Sname) in der
<option>
dann ist es am einfachsten, überspringen Sie die versteckten<input>
ganz. Übergeben Sie stattdessen die beiden Werte in der<option value>
- Attribut, getrennt durch etwas, das wie ein|
. In der PHP-code, erhält esexplode()
Sie wieder in zwei Werte:Wenn Sie nicht vertraut sind mit der Verwendung
$_SESSION
überprüfen die Bedienungsanleitung grundlegende Bedienung. Lange Geschichte kurz, Sie müssen rufen Siesession_start()
auf jedes Drehbuch, das auf$_SESSION
, und Sie müssen so tun vor das Skript erzeugt keine Ausgabe, einschließlich Leerzeichen. Dies ist die Standardmethode zum freigeben von Daten zwischen Skripten.name=\"".$row['SID']."\"
ich will nicht die sid zu sein, als eine option , ich möchte, wenn der Benutzer wählen Sie ein student Namen, seine id, die als verdeckte Eingabe und speichern, um Sie später zu verwenden .. hoffe, dass u verstehen
Siehe update oben. Sie können dies tun, ohne die versteckten Eingänge durch die übergabe von beide SID und Sname in der
<option>
, getrennt durch|
oder anderen Charakter.jetzt Lesen Sie die id korrekt , aber die Sache ist, dass ich drei Seiten habe ich die gleichen Daten ( Sname und SID ) zu fahren, dort sollte ich mich setzen list($SID, $Sname) = explode("|", $_POST['Sname']); bei jeder Seite ? oder gibt es einen anderen Weg, um pass diese zwei Werte ?
Entspannen Sie sich, ich bin nicht hier, jede minute des Tages. Ich habe eine Familie und Verantwortung 🙂
InformationsquelleAutor Michael Berkowski