我在创建数组和存储信息方面存在问题,我有一个数据表可能数量无限的表,然后用户将选择一些选项来决定他们可以选择哪些值(这也是然后将这些选项显示在一个复选框中,我使用此代码
<?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[]
但这只会存储一个值&#34;数组&#34;在我的数据库中而不是实际值。
请有人帮助我吗?
伊恩
答案 0 :(得分:0)
试试这个
<?php foreach ( $results['detailsline'] as $detailsline )
{
$invoice_details = $detailsline->details_line;
echo $invoice_details;
echo '<input type="checkbox" name="invoice_details[]" value="'.$invoice_details.'"/>';
}
?>
答案 1 :(得分:0)
使用<input type="checkbox" name="invoice_details[]">
在您的代码中,您可以使用serialize($invoice_details)
保存到数据库中并使用 - unserialize($field_from_db)
。
第一个函数返回字符串,因此您可以将其保存为字符串字段,第二个函数获取字符串并返回整个数组,以便您可以使用它。
答案 2 :(得分:0)
但这只会在我的数据库中存储一个值“Array”而不是实际值。
认为您尝试将Array存储为字符串,因此获得该值 那么可能需要使用implode / serialize / json_encode(Array)来存储数据?
答案 3 :(得分:0)
字面上说代码$invoice_details[] = $detailsline->details_line;
意味着获取对象 $ detailsline 的属性 details_line ,并将其值作为新元素插入数组 $ invoice_details 。你确定它是你想要的吗?)我还认为 $ detailsline 是一个数组,但不是对象(你试图将它作为一个对象操作)
答案 4 :(得分:0)
Okey我想你应该试试这个:
<?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++;
}
?>