Я использую цикл while для отображения результатов запроса. Цикл while работает нормально. В скрытых полях я хотел бы опубликовать значения userID и accessID на странице сведений о пользователе. Я отправляю форму, используя javascript для отправки по ссылке. Моя проблема заключается в том, что независимо от имени пользователя, которое я нажимаю, я могу опубликовать только значения для первой отображаемой записи. Что я делаю не так?
Код:
<?php while($row = $result->fetch_array()) { ?> <form method="post" action="edit_user.php" id="userForm"> <tr> <td> <a href="#" onclick="return(submitForm())"><?php echo $row['firstname'].' '.$row['surname']; ?></a> <input type="hidden" name="userID" value="<?php echo $row['userID']; ?>" /> <input type="hidden" name="accessID" value="<?php echo $row['accessID']; ?>" /> </td> </tr> </form> <?php } ?>
Javascript, используемый для отправки формы:
function submitForm() { var form = document.getElementById("userForm"); form.submit(); }
Спасибо. EDIT – я не хочу передавать значения в URL-адресе.
вы создаете несколько внутренних циклов <form>
s, перемещаете свой <form>
вне цикла while, например:
<form method="post" action="edit_user.php" id="userForm"> <?php while($row = $result->fetch_array()) { ?> <tr> <td> <a href="#"><?php echo $row['firstname'].' '.$row['surname']; ?></a> <input type="hidden" name="userID[]" value="<?php echo $row['userID']; ?>" /> <input type="hidden" name="accessID[]" value="<?php echo $row['accessID']; ?>" /> </td> </tr> <?php } ?> <a href="#" onclick="return submitForm();">Submit</a> </form>
Из-за этой линии вы столкнулись с проблемой
var form = document.getElementById("userForm");
В Javascript и HTML идентификатор должен быть уникальным для определенного элемента DOM. В этом случае у вас есть целая загрузка тегов формы, которые имеют одинаковый идентификатор. Вам нужно предоставить каждой форме другой идентификатор, а затем передать этот идентификатор функции submitForm.
Например:
<?php $id = 0; while($row = $result->fetch_array()) { ?> $id++; <form method="post" action="edit_user.php" id="<?php echo "userForm".$id ?>"> <tr> <td> <a href="#" onclick="return(submitForm("<?php echo "userForm".$id ?>"))"><?php echo $row['firstname'].' '.$row['surname']; ?></a> <input type="hidden" name="userID" value="<?php echo $row['userID']; ?>" /> <input type="hidden" name="accessID" value="<?php echo $row['accessID']; ?>" /> </td> </tr> </form> <?php } ?>
а потом
function submitForm(id) { var form = document.getElementById(id); form.submit(); }
edit : как я php? : D