【问题标题】:Collecting data from different dropdown menus php从不同的下拉菜单php收集数据
【发布时间】:2011-05-28 21:03:23
【问题描述】:

在我的 html 表单中,我有 3 个下拉菜单,分别是出生日期、日期菜单、月份菜单和年份菜单。

我想从日菜单中收集日值,
月份菜单中的月份值,
年复一年的菜单。

在我为收集出生日期数据而编写的 php 文件中;但它没有用。

$date = $_POST['day'] . "-" . $_POST['month'] . "-" . $_POST['year'];

请帮忙。

【问题讨论】:

  • 欢迎来到 SO。向我们展示您的 html 表单的一些代码。
  • 你想要什么? php文件怎么写,html代码怎么写,到底是什么?
  • PHP 代码看起来不错,您是否正确设置了 html 表单方法来发布和表单元素的名称?如果您也发布 HTML 部分会很有帮助。

标签: php forms select input


【解决方案1】:

一个简单的例子供你学习:)

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>date example</title>
</head>
<body>

<?php
if(isset($_POST['day']) && isset($_POST['month']) && isset($_POST['year'])){
    echo 'You selected: '.$_POST['day'].'-'.$_POST['month'].'-'.$_POST['year'];
}
?>

<form method="POST" action="">
  <p><select size="1" name="day">
  <?php formDay(); ?>
  </select>-
  <select size="1" name="month">
  <?php formMonth(); ?>
  </select>-
  <select size="1" name="year">
  <?php formYear(); ?>
  </select> <input type="submit" value="Submit"></p>
</form>
</body>
</html>

<?php
//functions to loop day,month,year
function formDay(){
    for($i=1; $i<=31; $i++){
        echo '<option value="'.$i.'">'.$i.'</option>'."\n";
    }
}

function formMonth(){
    $month = strtotime('2011-01-01');
    $end = strtotime('2012-01-01');
    while($month < $end){
        echo '<option value="'.date('F', $month).'">'.date('F', $month).'</option>'."\n";
        $month = strtotime("+1 month", $month);
    }
}

function formYear(){
    for($i=1980; $i<=date('Y'); $i++){
        echo '<option value="'.$i.'">'.$i.'</option>'."\n";
    }
}

?>

【讨论】:

    【解决方案2】:

    好吧,您似乎没有发布数据(您是否使用了 action="post"?),或者选择没有名称属性。但是,如果这两种方法都不能解决您的问题,也许您可​​以发布其余的 PHP 代码和 HTML 代码。

    【讨论】:

    • 是的,我使用行动帖子,选择的名称是日、月和年。当我在我的数据库中使用此代码时,我看到它写了 1。但我想看到的是 2005 年 2 月 14 日
    • 可能也是一个数据库问题。当您只回显这些值时,您会得到什么。提示:使用var_dump。它将允许您回显变量,包括元信息,如类型和长度。您还可以使用 var_dump $_POST 和 $_GET 来检查您是否在那里看到了您的值。而且,因为它只是为了调试,您可以轻松地跟踪所有出现的var_dump 以从生产代码中消除它们。
    • 它获取的值类似于 1964 年 13 月 04 日,表示 1964 年 4 月 13 日。但是,我在 mysql 数据库中的代码仍然显示出生日期为“1”。
    • @mertcek 您存储数据的列类型是什么?是 text 还是 varchar?
    猜你喜欢
    • 1970-01-01
    • 2019-02-19
    • 2021-11-17
    • 1970-01-01
    • 2014-08-03
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多