我有创建数组和存储信息的问题,我有一个数据表,它的数量可能是无限的,然后用户将选择一些选项,这将决定他们可以选择哪些值(这又是一个无限的数字),然后这些选择被呈现到一个复选框中,我使用这个代码
<?php foreach ( $results['detailsline'] as $detailsline )
{
$invoice_details = $detailsline->details_line;
echo $invoice_details;
echo '<input type="checkbox" name="invoice_details" value="'.$invoice_details.'"/>';
}
?>
所以这应该搜索他们之前选择的选项,并将它们排序到一个数组中,然后进入复选框,但是当我存储信息只是保存最后一个复选框时,我不能改变每个输入EG
的值echo '<input type="checkbox" name="invoice_details[value1]"
echo '<input type="checkbox" name="invoice_details[value2]"
因为我不知道会有多少值/复选框。我也试过这个
<?php foreach ( $results['detailsline'] as $detailsline )
{
$invoice_details[] = $detailsline->details_line;
echo $invoice_details[];
echo '<input type="checkbox" name="invoice_details[]" value="'.$invoice_details.'"/>';
}
?>
修改
$invoice_details
$invoice_details[]
,但这将只是存储一个值"数组"在我的数据库,而不是实际的值。
有谁能帮帮我吗?伊恩好的,我认为你应该试试这个:
<?php
$i=0;
foreach ( $results['detailsline'] as $detailsline )
{
$invoice_details = $detailsline->details_line;
echo $invoice_details;
echo '<input type="checkbox" name="invoice_details[$i]" value="'.$invoice_details.'"/>';
$i++;
}
?>
试试这个
<?php foreach ( $results['detailsline'] as $detailsline )
{
$invoice_details = $detailsline->details_line;
echo $invoice_details;
echo '<input type="checkbox" name="invoice_details[]" value="'.$invoice_details.'"/>';
}
?>
使用<input type="checkbox" name="invoice_details[]">
在你的代码中,你可以使用serialize($invoice_details)
保存到DB,当使用- unserialize($field_from_db)
。
第一个函数返回字符串,因此您可以将其保存为字符串字段,第二个函数获取字符串并返回整个数组,因此您可以使用它。
,但这将只是存储一个值"数组"在我的数据库,而不是实际的值。
认为您尝试将Array存储为字符串,因此获得了该值所以可能需要使用内爆/序列化/json_encode(数组)来存储数据?
字面意思是代码$invoice_details[] = $detailsline->details_line;
意味着获取对象$detailsline的属性details_line并将其值作为新元素插入数组$invoice_details。你确定这是你想要的吗?另外,我认为$detailsline是一个数组,但不是对象(您试图将其作为对象操作)