Так что это не смущает меня. У меня есть страница (index.php), которая имеет строки. Строки распечатываются так
И так далее … как вы можете видеть из кода ниже, я добавил операторы отладки, чтобы показать passID (800 номеров) и rowID (последовательный)
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";
Когда я нажимаю на определенную строку (скажем, 860, как показано на консоли разработчика здесь)
Когда мы просматриваем наши результаты на странице email.php, используя код
$projectID = $_POST['passID'];
$rowID = $_POST['rowID'];
echo $projectID;
echo "<br />";
echo $rowID;
Мы видим, что значение изменилось на 865 и строку 1 вместо ожидаемых 860 и строки 3 ?!
Это не имеет смысла для меня. Как это может происходить? HTML-страница отображается с правильными значениями строки, как показано на скриншоте отладки, так как получается, что код просто выбирает верхнюю строку на следующей странице. Что здесь происходит??!
Как вы видите, любая помощь будет принята с благодарностью, лол, потому что я могу или не могу сойти с ума, глядя на это!
Проблема заключается в form="passForm"
атрибут в кнопке отправки. Это вызывает все кнопки отправки, чтобы отправить форму в первом ряду. Если вы пропустите этот атрибут, кнопка отправки будет применена к содержащей его форме в текущей строке, что вам и нужно.
Вы также должны либо удалить id
атрибуты из всех ваших элементов, или сделайте их уникальными, включив идентификатор строки в идентификаторы, потому что идентификаторы должны быть уникальными.
Других решений пока нет …