2015-09-08 15 views
5

Also das ist für mich mehr als verwirrend. Ich habe eine Seite (index.php), die Zeilen hat. drucken Die Zeilen, die wie diesesPHP _POST Ausgabe macht keinen Sinn. Werte verschwinden?

enter image description here

enter image description here

enter image description here

enter image description here

Und so weiter ..., wie Sie aus dem Code unten sehen können I Debugging-Anweisungen hinzugefügt haben um die passID (800 Nummern) und die rowID (sequentiell) anzuzeigen

echo "{$row['ID']}"; 
    echo" 
    <form action=\"./functions/email.php\" id='passForm' method='post'> 
    <input type='hidden' id='passID' name='passID' value='{$row['ID']}'/> 
    <input type='hidden' id='rowID' name='rowID' value='$rowID'/> 
    <button type=\"submit\" form=\"passForm\" value=\"Submit\" style=\"height:25px; width:75px\">Pass</button> 
    </form>"; 
    echo "$rowID"; 

Wenn ich auf einer bestimmten Zeile klicken (mal 860 sagen, wie in der Entwicklerkonsole hier gezeigt) enter image description here

Wenn wir unsere Ergebnisse auf der email.php Seite mit dem Code sehen

$projectID = $_POST['passID']; 
$rowID = $_POST['rowID']; 
echo $projectID; 
echo "<br />"; 
echo $rowID; 

Wir sehen, dass der Wert auf 865 und Zeile 1 statt der erwarteten 860 und Zeile 3 geändert wurde ?!

enter image description here

Das macht keinen Sinn für mich. Wie kann das passieren? Die HTML-Seite rendert sich mit den Zeilenwerten wie im Debug-Screenshot gezeigt. Wie kommt es, dass der Code die oberste Zeile auf der nächsten Seite aufruft? Was ist los??!

Wie Sie sehen können, würde jede Hilfe sehr geschätzt werden, lol, weil ich vielleicht verrückt werde oder nicht, starrend dies an!

+3

Sie haben also mehrere Formulare/Schaltflächen/Felder mit doppelten 'id's? d.h. 'passForm' Diese sollten für jedes Formular eindeutig sein. – Ankh

Antwort

9

Das Problem ist das form="passForm" Attribut in der Schaltfläche senden. Es bewirkt, dass alle Übermittlungsschaltflächen das Formular in der ersten Zeile senden. Wenn Sie dieses Attribut weglassen, wird die Übergabeschaltfläche auf das umgebende Formular in der aktuellen Zeile angewendet, was Sie wünschen.

Sie sollten auch entweder die id-Attribute aus allen Ihren Elementen entfernen oder sie durch Einfügen der Zeilen-ID in die IDs eindeutig machen, da IDs eindeutig sein müssen.

+0

Einfach, aber effektiv. – Peter

+1

Welpe. Ein bisschen Missverständnis reicht weit. Danke, dass du mich korrigiert hast. Meine Güte, ich kann nicht glauben, dass ich das nicht bemerkt habe. Vielen Dank! – new2programming