首页 > 解决方案 > PHP未定义变量,但它已定义并具有值

问题描述

我正在开发一个 PHP 项目 - 我有一个表单将日期发布到另一个表单我做了一些更改(尽管没有对有问题的输入进行更改)现在所有其他输入都使用它们的 Posted 值进行更新,日期除外

如果我在 HTML 中手动设置日期,它可以工作:

    <div><input type="date" class="form-control" id="DateCourse" name="DateCourse" value="2009-01-01"></div>

如果我将它设置为以下,它不会:

    <div><input type="date" class="form-control" id="DateCourse" name="DateCourse" value="<?php echo (isset($DateCourse))?$DateCourse:'';?>"></div>

下面:

   $DateCourse = ($_POST["DateCourse"]);
   var_dump($_POST["DateCourse"]); 
   var_dump($DateCourse);

回报:

string(10) "2019-01-05" - 表示 post 值已设置

注意:未定义变量:第 119 行 /home/bitecons/bts.biteconsulting.co.za/v2/editccr.php 中的 DateCourse - 怎么可能未定义,我刚刚定义了

无效的

我到底做错了什么?除了使用 PHP :P

按要求流动:

记录.php:

这是预填充我发布的字段的功能:

    function Prefill(x) {
      TabletoEdit = x.closest('table').id; 
      SelectedRow = x.rowIndex;
      document.getElementById("EntryEditing").value = x.cells[19].innerHTML;
      document.getElementById("DateCourse").value = x.cells[0].innerHTML;
      document.forms["records"].submit();
    }

然后我也有:

    <form action="editrec" method="post" id="records">
      <input type='hidden' name='Period' id='Period'  />
      <input type='hidden' name='Month' id='Month'  />
      <input type='hidden' name='res' id='res'  />
      <input type='hidden' name='CustName' id='CustName'  />
      <input type='hidden' name='DateCourse' id='DateCourse'  />
    </form>

Prefill 被调用,然后提交表单

我已经跟踪并且 DateCourse 有数据,但是当进入另一种形式时,它“消失”:

    if(!empty($_POST)) {
      $DateCourse = ($_POST["DateCourse"]);
      $CustName = ($_POST["CustName"]);
    }

比如填写CustName,但不填写DateCourse?

附带问题:

如果未设置另一个 post var(与此无关),这是否会返回 true:

    if(!empty($_POST)) 

标签: phphtmlformsvariables

解决方案


我认为您使用了错误的代码,您必须提交第一个表单,然后在 POSTBACK 的另一个表单中使用 $DateCourse 这个


推荐阅读