2013-03-21 78 views
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.'"/>'; 
    }    
?> 

所以这应该通过他们以前选择的选项进行搜索,并将其分类成一个数组然后进入复选框,但当我存储的信息只是保存最后一个箱子检查,我不能改变每个输入的值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[] 

但这将只是保存在我的数据库中的值“阵列”,而不是实际值。

请任何人都可以帮我吗?

伊恩

回答

0

欧凯我认为你应该试试这个:

<?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++; 
}    
?> 
+0

看来我的问题是将值存储到数据库中,我认为我需要将其转换为字符串,但无所适从。感谢您的回复。 – snookian 2013-03-21 11:17:51

+0

您对$ i的使用非常适合让echo工作起作用,非常感谢。现在只需将数组存储为一个字符串。 – snookian 2013-03-21 11:21:54

+0

欢迎你。 请让它“接受”.. – Napster 2013-03-21 11:22:33

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.'"/>'; 
    }    
?> 
+0

感谢您的回复,我需要在提交之前将数组转换为字符串,因为我发现我使用的第一组代码是在每个数组迭代中工作并存储正确的值,但是当将所选框转换为字符串时,我非常困惑 – snookian 2013-03-21 11:19:22

0

使用<input type="checkbox" name="invoice_details[]">

在你的代码可以使用serialize($invoice_details)保存到数据库,并使用时 - unserialize($field_from_db)

第一个函数返回字符串,所以你可以将它保存为字符串字段,第二个函数获取字符串并返回整个数组,所以你可以使用它。

0

但这只会在我的数据库中存储一个值“Array”而不是实际的值。

想你想存储阵列作为字符串,得到了价值 所以可能需要使用破灭/串行/ json_encode(阵列)存储数据?

0

字面上说代码$invoice_details[] = $detailsline->details_line;装置采取属性的对象$ detailslinedetails_line和在阵列$ invoice_details插入其作为新的元素值。你确定这是你想要的吗?)我也假设$ detailsline是一个数组,而不是对象(你想操作它作为一个对象)