PHP - HTML:$ _POST赋值'Array'后选择属性

时间:2017-08-17 12:35:29

标签: php html mysql post


最近我遇到了$_POST方法的问题。这是HTML中的select属性,它通过POST方法提供信息。

<select name="date_year[]" required>
                    <option value="" selected="selected" disabled="true">Choose year...</option>
                    <option value="07"> 2007</option>
                    <option value="08"> 2008</option>
                    <option value="09"> 2009</option>
                    <option value="10"> 2010</option>
                    <option value="11"> 2011</option>
                    <option value="12"> 2012</option>
                    <option value="13"> 2013</option>
                    <option value="14"> 2014</option>
                    <option value="15"> 2015</option>
                    <option value="16"> 2016</option>
                    <option value="17"> 2017</option>
                    <option value="18"> 2018</option>
                    <option value="19"> 2019</option>
                    <option value="20"> 2020</option>
                    </select>

用这个select标签提交表单后,在PHP代码中我有这样的东西:

$month_date = $_POST['date_month'];
$year_date = $_POST['date_year'];

$final_date = $month_date . ' '. $year_date;
$esult = $connection->query("SET NAMES 'utf8'");
if($connection->query("INSERT INTO thread VALUES (NULL, '$name', '$final_date', '$desc', '$thumbnail', '$gallery_img')")) {
    unset($_POST['upload']);
    header('Location: panel.php');
    $connection->close();
    exit();
}

这里只是寻找这些$_POST的东西。我刚刚给出了上下文的完整代码。这是我的问题:成功插入MySQL数据库后,我得到了值“Array Array”。出于好奇,我回应了$final_date,但仍然只是'数组阵列'。为什么呢?

5 个答案:

答案 0 :(得分:2)

更改

<select name="date_year[]" required>

<select name="date_year" required>

括号使输入字段成为数组,因此查询中为Array

答案 1 :(得分:2)

您的代码存在两个问题:

<select name="date_year[]" required>

这里不需要使用name作为数组。所以改成它:

<select name="date_year" required>

和连接后:

$final_date = $month_date . ' '. $year_date;

格式为m-Y,日期列无法接受。日期列格式为“Y-m-d”

答案 2 :(得分:1)

正如您在date_year[]标记中提到select数组一样,它将作为数组生成

将您的选择标记更改为

<select name="date_year" required>

答案 3 :(得分:1)

你的html选择元素是

<select name="date_year[]" required>

所以你应该像这样访问它

$year_date = $_POST['date_year'][0];

不喜欢

$year_date = $_POST['date_year'];

答案 4 :(得分:1)

更改此

<select name="date_year[]" required>

到这个

<select name="date_year" required>

它将解决您的问题。