最近我遇到了$_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
,但仍然只是'数组阵列'。为什么呢?
答案 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>
它将解决您的问题。