PHP未定义变量,但已定义且具有值

时间:2019-12-23 05:13:11

标签: php html forms variables

我正在处理一个PHP项目-我有一个表单将日期发布到另一表单 我进行了一些更改(尽管未对所输入的内容进行任何更改) 现在,除日期以外,所有其他输入都将使用其发布的值进行更新

如果我手动以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”-表示已设置帖子值

注意:未定义的变量:在第119行的/home/bitecons/bts.biteconsulting.co.za/v2/editccr.php中的DateCourse-如何将其定义为未定义

NULL

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

流量按要求:

Records.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)) 

3 个答案:

答案 0 :(得分:0)

我认为您使用了错误的代码 您必须先提交表单,然后使用$ Date在POSTBACK中以另一种形式进行填写

答案 1 :(得分:0)

最好的方法之一就是像

一样定义$ DateCourse。
<?php
$DateCourse = "";
if(!empty($_POST["DateCourse"])) {
    $DateCourse = ($_POST["DateCourse"]);
}
?>
<div><input type="date" class="form-control" id="DateCourse" name="DateCourse" value="<?php echo $DateCourse;?>"></div>

答案 2 :(得分:0)

好的,很抱歉,但将来可能会对其他人有所帮助。 我对一个旧函数进行了函数调用-失败,导致我的变量永远无法定义...我知道这很愚蠢,但有时需要一块音板...