PHP MVC没有向控制器发送值

时间:2015-04-02 16:16:22

标签: php mysql

我一直在制作一个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>";

2 个答案:

答案 0 :(得分:0)

尝试$ _POST [“fld”];在你的控制器中获得价值。如果您正在使用任何类似codeigniter的框架,那么您可以使用自己的方法。

例如codeigniter有  $这 - &GT;输入 - &GT;柱();

答案 1 :(得分:0)

好,

  1. 一步一步,$ uid必须首先将其变为表单元素值属性。检查html源代码以确保实际发生这种情况。

  2. 放置var_dump($ _ POST)退出;在你的控制器中,如果有的话,找到实际收到的东西。

  3. 检查以确保结果数组元素实际具有值而不是空字符串值或NULL。

  4. 嗯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>';
       }