我在弄清楚如何从输入字段获取数组时遇到了一些问题。因此,我的数组显示了我选择了哪些对象,我的问题是,当我将$selagegroup添加到sql insert中时,它只显示最后一个被选中的对象,而不是所有被选中的对象。我对sql和php还是有点陌生,所以这里有我的html和php代码非常感谢您的帮助
<label for="agegroup" id="agegroup"> What ages do you interact with?
<input type="checkbox" name="age[]" class="ages" id="kids" value="kids"> Ages 0-10
<input type="checkbox" name="age[]" class="ages" id="teens" value="teens"> Ages 11-19
<input type="checkbox" name="age[]" class="ages" id="twentys" value="twenties"> Ages 20-29
<input type="checkbox" name="age[]" class="ages" id="thirtys" value="thirties"> Ages 30-39
<input type="checkbox" name="age[]" class="ages" id="fourtys" value="fourties"> Ages 40-49
<input type="checkbox" name="age[]" class="ages" id="fiftys" value="fifties"> Ages 50-59
<input type="checkbox" name="age[]" class="ages" id="sixtyplus" value="sixtyplus"> Ages 60+
</label>
下面是我用来显示数组的php:
if (isset($_POST['age']) && $_POST['age'] !== '') {
$vagegroup = $_POST['age'];
foreach($_POST['age'] as $selagegroup){
echo $selagegroup.'<br>';
}
} else {
$vagegroup = '';
}
我也尝试过将foreach循环添加到sql insert中,但是它只显示“,”,“”,对于复选框中的每个字段,我不知道该怎么做。任何帮助都将非常感激,即使我只是回显数组,它也可以工作并显示选中的所有内容。如果有人能解释和帮助,谢谢:)
编辑::我忘了添加这个我的insert语句整体上有30个不同的字段,因为这是一个很长的形式,但这是我如何为年龄组,它只显示最后选定的值
$sql_insert = "INSERT INTO influencers (inf_ages) VALUES ('$selagegroup')";
1条答案
按热度按时间puruo6ea1#
如果需要一个响应数组,则可以在将数据保存到数据库之前对其进行序列化或json编码,前提是db列的长度至少为varchar
我还建议检查它是否是一个数组,并确认您正在检索所需的输入(始终验证!),然后只需通过上述方法之一,而不是循环创建字符串-这比序列化或编码占用更多的资源。