Không có <form>
đóng gói đầu vào các yếu tố. Ngoài ra, bạn đã sử dụng <input type="submit" ... >
phần tử thay vì thẻ liên kết để gửi dữ liệu đã nhập của người dùng tới itemedit.php trang. Vì vậy, hãy thay đổi for
lặp lại theo cách sau,
for($i=1;$i<=$menuSet->GetMenuItems();$i++){
$func = "GetMenuLink".$i;
?>
<tr>
<form action="itemedit.php?i=<?php echo $i; ?>" method="post">
<td>$i</td>
<td><input type='text' name='e' value='<?php echo $menuSet->$func(); ?>'/></td>
<td>
<input type='submit' value='Edit' class='glyphicon glyphicon-pencil' />
</form>
<a title='Remove' href='itemdelete.php?i=<?php echo $i; ?>'><span class='glyphicon glyphicon-remove'></span></a>
</td>
</tr>
<?php
}
Và trong itemedit.php , xử lý dữ liệu đã gửi trong biểu mẫu của bạn theo cách sau,
if (isset($_GET['i'])){
$i = $_GET['i'];
$e = $_POST['e'];
$editItem = new Menus();
// update the menu items
$editItem->EditMenuItem($i,$e);
...
Cập nhật (1):
Câu lệnh đã chuẩn bị của bạn và bindParam()
phương thức gọi cũng sai. Chúng sẽ như thế này:
$adm = $this->db->prepare("UPDATE menu_nav SET menu_link_$i = ?");
$adm->bindParam(1, $e, PDO::PARAM_STR);