我制作了一个MVC网站,它显示数据库记录,每个记录都打印在自己的行上,旁边有一个删除按钮。我的删除按钮有一些问题。当我点击删除按钮时,我正试图将其发送到我的控制器进行处理。
我遇到的问题是
- 我无法将行id从button.php发送到控制器(强烈怀疑代码有误)
-
控制器中的delet功能不起作用,在下面的代码中,我已经硬编码了我想删除的行ID,但当我点击删除按钮时,我得到了以下错误
SQL语句中存在语法错误。您的SQL语法有错误;查看与MySQL服务器版本对应的手册,了解在第1行"id=27"附近使用的正确语法
Button.php
<?php
$result=$itemsDAO->getItems();
foreach ($result as $row) {
$uid = $row['id'];
?>
<form action="index.php" method="post">
<fieldset>
<input id='action' type='hidden' name='action' value='deleteItem' />
<p>
<div class="form-group">
<div class="controls">
<input type="hidden" id="fID" name="uid" value="<?php echo $uid; ?>">
<input type="submit" class="btn btn-success" value="Delete">
</div>
</div>
</p>
</fieldset>
</form>
<?php } ?>
控制器中的删除功能
function deleteItem($parameters) {
$id = $parameters["fID"];
if ($this->model->deleteItem( $id )) {
$this->model->hasDeleteFailed = false;
$this->model->setDeleteItemConfirmation();
return (true);
}
else
$this->model->deleteItemError ( DELETE_ITEM_ERROR_STR );
}
删除SQL
public function deleteItem($id) {
$delId = $id;
$sqlQuery = "DELETE FROM items";
$sqlQuery .= " WHERE id=$delId;";
$result = $this->getDbManager () -> executeQuery ( $sqlQuery );
}
尝试以下步骤:
- 检查
$parameters
是否正确传递给deleteItem
函数(使用echo $parameters
或somthing) - 如果是,请检查查询(
DELETE * FROM 'thetable' WHERE id = $id
)
通常在MVC站点中,参数通过(site_url/controller/method/parameter
)url。但是,当您使用表单时,它需要成为捕获表单变量的机制。