PHP表单数据不发送

时间:2014-01-10 16:22:31

标签: php forms

我想添加一个输入字段,例如用户可以在其中输入名称,并将其添加到数据库中的相关表中。但是我想为此创建一个新动作,到目前为止,我有基本输入字段和提交按钮,其中包含以下代码:

public function action_mynewaction() {
     $this->auto_render = false;
     if ($this->request->is_ajax()) 
     {
     $stmt = DB::query(Database::INSERT, 'INSERT INTO `mytable` (`name`) VALUES (:Name)');
     $view = View :: factory('my/form/file_path');
     echo $view->render();
     }
    }

这是我的视图文件,其中显示了表单

<table cellspacing="1" cellpadding="5" class="myclass noSort">
   <thead>
      <tr>
         <th>A</th>
         <th>B</th>
         <th>C</th>
      </tr>
    </thead>
        <tfoot>
            <tr>
              <td colspan="3">&nbsp;</td>
            </tr>
        </tfoot>
         <tbody>
            <tr>
                <form action="" method="post">
                 <td>Add Name</td>
                 <td><input type="text" name="Name"></td>
                 <td><input type="submit" value="Submit">
                </form>
             </tr>
          </tbody>
   </table>

但每当我加入

  

$ stmt-&gt; param(':Name',$ _POST ['name']);

部分它根本没有显示输入/表单字段?

根本不显示表单/输入字段

       public function action_mynewaction() {
          $post = $this->request->post();

          $stmt = DB::query(Database::INSERT, 'INSERT INTO `mytable` (`name`) VALUES (:Name)');
          $stmt->param(':Name', $_POST['name']);
          $stmt->execute();

          $view = View :: factory('my/form/file_path');
          echo $view->render();
   }

2 个答案:

答案 0 :(得分:2)

表单数据区分大小写。

在你的html中你有:name="Name"并且你将检索$_POST['Name']的数据,该数据表示“接收者”php页面与发送的页面不一致形式。

答案 1 :(得分:1)

请遵循名称约定,以便它可以将相应的元素绑定到浏览器获取方法。

    public function action_mynewaction() {
          $post = $this->request->post();

          $stmt = DB::query(Database::INSERT, 'INSERT INTO `mytable` (`name`) VALUES (:Name)');
          $stmt->param(':Name', $_POST['Name']); /* replace 'name' with 'Name' */
          $stmt->execute();

          $view = View :: factory('my/form/file_path');
          echo $view->render();
   }