我一直在制作一个MVC网站,我无法将表格中的行ID发送到我的控制器。
我用于表单的代码获取每个数据库条目的行ID,并将其分配给隐藏值。提交表单时,它会将参数发送给控制器(应该发送$ uid),但是uid没有将它发送给控制器。
表单代码(buttons.php)
<?php
$itemsDAO = new ItemsDAO();
$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="fId" 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 );
}
View.php - 我在哪里显示数据库项目列表和buttons.php
$this->model->prepareItemList();
$buttons = file_get_contents( "templates/buttons.php");
$HTMLItemList = "";
foreach ( $this->model->itemList as $row )
$HTMLItemList .= "<li><strong>" . $row ["title"] . ": </strong>" . $row ["price"] . "<blockquote>" .$row ["description"] . " " . $buttons ."</blockquote></li>";
答案 0 :(得分:0)
尝试$ _POST [“fld”];在你的控制器中获得价值。如果您正在使用任何类似codeigniter的框架,那么您可以使用自己的方法。
例如codeigniter有 $这 - &GT;输入 - &GT;柱();
答案 1 :(得分:0)
好,
一步一步,$ uid必须首先将其变为表单元素值属性。检查html源代码以确保实际发生这种情况。
放置var_dump($ _ POST)退出;在你的控制器中,如果有的话,找到实际收到的东西。
检查以确保结果数组元素实际具有值而不是空字符串值或NULL。
嗯S.O.代码格式错误。
// turn on error reporting for dev to view empty or missing variable errors
ini_set('error_reporting', E_ALL);
$result=$itemsDAO->getItems();
foreach ($result as $row) {
($row['id'] != ''? $uid = $row['id'] : $uid ='no id found');
// debug result
echo '<pre>' . print_r($row,1) .'</pre>';
}