表单发布不起作用



我在发布 html 表单时遇到问题。我正在发布一个表单并将帖子值获取到我的变量,然后我发布此表单,但此表单没有发布。

网页代码:

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" autocomplete="off">
        <div class="widget-box">
            <div class="widget-title"> <span class="icon"> <i class="icon-user"></i> </span>
                <h5>Amc details</h5>
            </div>
            <div class="widget-content">
              <div class="controls controls-row">
                  <div class="control-group span3">
                      <label for="normal" class="control-label">Installation Date<span style="color:red">*</span></label>
                      <div class="controls">
                          <input type="text" id="amc-ins-date" data-date="01-02-2016" name="amc-ins-date" data-date-format="dd-mm-yyyy"  class="datepicker span12"  placeholder="Enter installation date">
                      </div>
                  </div>
                  <div class="control-group span3">
                      <label for="normal" class="control-label">Start Date<span style="color:red">*</span></label>
                      <div class="controls">
                          <input type="text" id="amc-start-date" data-date="01-02-2016" name="amc-start-date" data-date-format="dd-mm-yyyy" placeholder="Enter amc start date"  class="datepicker span12 ins-date">
                      </div>
                  </div>
                  <div class="control-group span3">
                      <label class="control-label">End Date<span style="color:red">*</span></label>
                      <div class="controls">
                          <input type="text" id="amc-end-date" data-date="01-02-2016" name="amc-end-date" data-date-format="dd-mm-yyyy" placeholder="Enter amc end date"  class="datepicker span12 ins-date">
                      </div>
                  </div>
                  <div class="control-group span3">
                      <label class="control-label">Amount<span style="color:red">*</span></label>
                      <div class="controls">
                          <input type="text" id="amc-amount" name="amc-amount" class="span12" placeholder="Enter amc amount">
                      </div>
                  </div>
              </div>
              </div>
                <div class="form-actions">
                    <input style="float:right" type="submit" name="amc-installation" class="btn btn-success" value="Save">
                </div>
      </form>

PHP代码:

 // i have submitted a form here and its posted
// installation details
    $mc_serial = $_POST['mc-serial'];
    $mc_model = $_POST['mc-model'];
    $contract_type = $_POST['contract_type'];
    $no_of_copies = $_POST['no-of-copies'];
    $spare_part = join(",",$_POST['spare-part']);
    $eng_name = $_POST['eng-name'];
    $review = $_POST['review'];
    // check if the machine already exits
    if(IsMachine($mc_serial,$con)){
         echo msgIsMachine();
         exit();
    }
    if($contract_type == 'AMC'){
      require './forms/amc.php'; // this is the html i have shown above
    } elseif ($contract_type == 'ASC') {
      require './forms/asc.php';
    } elseif ($contract_type == '4C') {
      require './forms/4c.php';
    } elseif ($contract_type == 'RENTAL') {
      require './forms/rental.php';
    } elseif ($contract_type == 'WARRANTY') {
      require './forms/warranty.php';
    }
    if(isset($_POST['amc-installation']) && !empty($_POST['amc-installation'])){
      echo "posted";
      var_dump($_POST);($_POST);
    }

var_dump的输出是NULL 。我没有任何问题。

您回显第二个表单(在响应第一个表单提交的脚本期间(,但随后立即检查在同一脚本执行中从它返回的值。您必须等待用户将表单发回,然后才能检查提交的值。这将是一个单独的回发,因此是 PHP 的单独执行上下文。

因此,检查第二个表单中的值的代码需要位于由提交第二个表单触发的单独部分(或文件(中。

在 PHP 中没有$POST你应该使用 $_POST

if(isset($_POST['amc-installation']) && !empty($_POST['amc-installation'])){
   echo "posted";
   var_dump($_POST);
}

注意:您应该将var_dump($_POST);放在if语句中,以便在提交后立即删除。

希望这有帮助。

if(isset($_POST['amc-installation']) && !empty($_POST['amc-installation'])){
  echo "posted";
  var_dump($_POST);
}

您应该使用$_POST而不是$POST

希望这能帮助你:)

最新更新