【问题标题】:Get value of input form (PHP)获取输入表单的值(PHP)
【发布时间】:2016-11-02 23:22:13
【问题描述】:

我正在使用一个公式,并且必须将日期分成日、月和年。我找到了一种方法来分隔日期,同时使用变量 $enterdate。

  <form action="/datepage.php" method="get">
  <label data-for="date">Enter Date:</label>
<?php $enterdate = $GET["date"]; list ($day,$month,$year) = split('[/.-]', $enterdate); ?>
  <input type="text" id="datefield" name="date" class="datepicker" value="" autocomplete="off" />
  <input type="hidden" id="day" name="day" value="<?php echo $day; ?>" />
  <input type="hidden" id="month" name="month" value="<?php echo $month; ?>" />
  <input type="hidden" id="year" name="year" value="<?php echo $year; ?>" />
  </form>

但我不知道,如何获取输入字段的值,用户在输入字段内填写(id="datefield")。例如,用户输入以下日期:14.01.16

毕竟我在 URL 中需要这个 GET 输出:

&date=14.01.16&day=14&month=01&year=16

任何人都有想法,我做错了什么?

【问题讨论】:

  • 添加一个提交按钮并点击它并检查发生了什么
  • 我会使用 javascript 来构建我的表单,而不是 php。得到什么?您是否将其发布到其他页面?我不明白如果这个页面没有被重新加载,隐藏字段的值是如何设置的,那么你想再次发布该数据吗?
  • 首先,它会是$_GET["date"],其次,您当然不能用户提交表单之前访问该值服务器端。跨度>

标签: php date input


【解决方案1】:

是否需要在 URL 中包含数据?使用 GET 将在 URL 中发送数据。

我会这样做——(总结:使用 post 操作发布数据并使用 jQuery 填写隐藏输入的值)

这应该可以解决问题。这样做是在用户选择一个日期后,这将使用正确的值更新隐藏的表单字段。这样,当您发布此表单时,服务器将获取值。

您的表单添加了提交输入:

  <form action="/datepage.php" method="POST">
    <label data-for="date">Enter Date:</label>
    <input type="text" id="datefield" name="date" class="datepicker" value="" autocomplete="off" />
    <!-- set from jQuery -->
    <input type="hidden" id="day" name="day" value="" />
    <input type="hidden" id="month" name="month" value="" />
    <input type="hidden" id="year" name="year" value="" /> 
    <input type="submit" name="submit" value="Submit" /> 
  </form>

在选择日期选择器日期后将正确值放入表单中的 jQuery。

<script>
    $("#datefield").datepicker({
      onSelect: function(dateText) {
        var tempArray = dateText.spit('-'); // not sure if you are using - or /
        var day = $tempArray[0];
        var month = $tempArray[1];
         var year = $tempArray[2];
        // add that to the hidden values
       $("#day").attr("value", day); // set the day value
       $("#month").attr("value", month); // month
       $("#year").attr("value", year); // year
      }
    });

    </script>

还有你的服务器端:

// if the form was submitted show the results on the screen.
if( isset($_POST['submit']) ) {
  echo $_POST['date']; // fulldate
  echo $_POST['day'];
  echo $_POST['month'];
  echo $_POST['year'];
}

GET 与 POST 的区别 http://www.w3schools.com/tags/ref_httpmethods.asp

祝你好运!

【讨论】:

  • 问题是关于在 php 端获取数据
  • @СеменихинМаксим 按下提交按钮后,数据将在服务器端..
【解决方案2】:

如果您使用带有method="get" 的formt,它的所有输入都将被传递datepage.php$_GET 数组中 所以你可以像这样访问你的输入:

echo $_GET['date'];
echo '<br />';

echo $_GET['day'];
echo '<br />';

echo $_GET['month'];
echo '<br />';

echo $_GET['year'];
echo '<br />';

请记住,它们存储在 $_GET 数组中,其中键是输入名称。

您的 html 表单:

<form action="/datepage.php" method="get">
  <label data-for="date">Enter Date:</label>
  <?php $enterdate = $GET["date"]; list ($day,$month,$year) = split('[/.-]', $enterdate); ?>
    <input type="text" id="datefield" name="date" class="datepicker" value="" autocomplete="off" />
    <input type="hidden" id="day" name="day" value="<?php echo $day; ?>" />
    <input type="hidden" id="month" name="month" value="<?php echo $month; ?>" />
    <input type="hidden" id="year" name="year" value="<?php echo $year; ?>" />
    <input type="submit" value="Submit">
</form>

提交按钮已添加到您的表单中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-18
    • 1970-01-01
    • 2017-02-21
    • 1970-01-01
    • 1970-01-01
    • 2021-06-01
    相关资源
    最近更新 更多