HTML表单不通过提交发送帖子

时间:2015-12-28 13:56:33

标签: php html5 forms

我已经检查了堆栈溢出的所有解决方案......我正在满足我所需要的一切。我的HTML表单仍然没有发送帖子请求。我的代码也是。

这是create_blog.php页面..这包括

<?php include_once ('blog_controller.php'); ?>

在顶部。

<form action="create_blog.php" method="post">
   <div class="form-row form-row">
      <div class="form-controls">
         <input type="text" name="title" class="field form-control input-lg" required id="field-fname" value="" placeholder="Title*" />
      </div>
      <!-- /.form-controls --> 
   </div>
   <!-- /.form-row -->

   <div class="form-row">
      <div class="form-controls">
         <textarea class="textarea" name="body"  required id="field-message" placeholder="Content*"></textarea>
      </div>
      <!-- /.form-controls --> 
   </div>
   <!-- /.form-row -->

   <?php
   if (isset($error)) {
       echo '<div class="alert alert-error">' . $error . ' </div>';
   }
   if (isset($success)) {
       echo '<div class="alert alert-success">' . $success . ' </div>';
   }
   ?>
   <div class="form-actions">
      <input type="submit" value="CREATE NOW" name="add_blog" class="button btn-purple btn-small" />
   </div>
   <!-- /.form-actions -->
</form>

这是blog_controller.php

<?php
include_once ('ManageBlogs.php');
$init = new ManageBlogs();


//CREATE NEW BLOG

if (isset($_POST['add_blog'])) {
    $title = $_POST['title'];
    $body = $_POST['body'];
    $date_created = date('Y-m-d H:i:s');


    if (empty($title)) {
        $error = 'You must provide a title to add this blog.';
    } else {
        $create_code = $init->addNewCode($title, $body, $date_created);

        if ($create_code == 1) {
            $success = 'Blog '.$title.' added Successfully';
        } else {
            $error = 'Error adding Blog. Please Try Again.';
        }
    }
}
?>

仍然没有在提交按钮点击时发送POST请求。

4 个答案:

答案 0 :(得分:1)

更改:

<form action = 'create_blog.php' ...>

致:

<form action = 'blog_controller.php' ...>

您已经在blog_controller.php中处理了该表单 但是表单的动作是create_blog.php

同时检查javscript端是否有此代码:

event.preventDefault();

这个javascript编码还会阻止表单在触发按钮后将控件转移到PHP编码。

答案 1 :(得分:0)

我的理解是,你想将数据从login.php发送到login_controller.php,对吧? 因此,表单中的操作将是&#39; login_controller.php&#39;,而不是&#39; create_blog.php&#39;。

答案 2 :(得分:0)

我已经完成了你的代码,它没有任何问题。由于我没有包含ManageBlogs.php,这意味着它可能会导致此错误。尝试删除文件包含并再次检查。如果您获得输出意味着,一些不需要的内部重定向正在删除POST值。

这是我尝试过的代码,它正在运行。

<?php 

include_once ('blog_controller.php'); 

if (isset($title)) {
   echo 'Title: '.$title;
}
?>
<form action="create_blog.php" method="post">
   <div class="form-row form-row">
      <div class="form-controls">
         <input type="text" name="title" class="field form-control input-lg" required id="field-fname" value="" placeholder="Title*" />
      </div>
      <!-- /.form-controls --> 
   </div>
   <!-- /.form-row -->

   <div class="form-row">
      <div class="form-controls">
         <textarea class="textarea" name="body"  required id="field-message" placeholder="Content*"></textarea>
      </div>
      <!-- /.form-controls --> 
   </div>
   <!-- /.form-row -->
    <?php
    if (isset($error)) {
       echo '<div class="alert alert-error">' . $error . ' </div>';
    }
    if (isset($success)) {
       echo '<div class="alert alert-success">' . $success . ' </div>';
    }
   ?>
   <div class="form-actions">
      <input type="submit" value="CREATE NOW" name="add_blog" class="button btn-purple btn-small" />
   </div>
   <!-- /.form-actions -->
</form>

blog_controller.php

<?php
// include_once ('ManageBlogs.php');
// $init = new ManageBlogs();

if (isset($_POST['title'])) {
    $title =  $_POST['title'];  
}
?>

答案 3 :(得分:0)

试试这个:从顶部移除<?php include_once ('blog_controller.php'); ?>并将操作从create_blog.php更改为blog_controller.php

当我从您的问题中得到答案时,您希望将当前表单中的数据发送到blog_controller.php,其中您可以使用代码执行某些操作。