希望有人能够理解这一点...设置一个脚本生成复选框值为多维数组
我还是很新的PHP和我卡住了。
我有一个问题... 我有一个由foreach循环生成的复选框列表,每个框应该有一个多维数组,因为它的值。
<input type='checkbox' name='unit[]' value='multidimensional array' />
我有一个包含这样的数组中的文件:
$disclaimer = disclaimer;
$unit = array(
//EXTRAS
"0" => array("key0_key0" => "<h1>key0_key0_VALUE</h1>",
"key0_key1" => "<li>key0_key1_VALUE</li>",
"key0_key2" => "<li>key0_key2_VALUE</li>",
"key0_key3" => "<li>key0_key3_VALUE</li>",
"key0_key4" => "<li>key0_key4_VALUE</li>",
"key0_key5" => "<li>key0_key_VALUE</li>",
"key0_key6" => array("key0_key6_key1" => "<h1>key0_key6_key1_VALUE</h1>",
"key0_key6_key2" => "<li>key0_key6_key2_VALUE</li>"
),
),
),
//UNIT 1
"1" => array("key1_key0" => "<h1>key1_key0_VALUE</h1>",
"key1_key1" => "<li>key1_key1_VALUE</li>",
"key1_key2" => "<li>key1_key2_VALUE</li>",
"key1_key3" => "<li>key1_key3_VALUE</li>",
"key1_key4" => "<li>key1_key4_VALUE</li>",
"key1_key5" => "<li>key1_key_VALUE</li>",
"key1_key6" => array("key1_key6_key1" => "<h1>key1_key6_key1_VALUE</h1>",
"key1_key6_key2" => "<li>key1_key6_key2_VALUE</li>"
),
),
),
//UNIT 2
"2" => array("key2_key0" => "<h1>key2_key0_VALUE</h1>",
"key2_key1" => "<li>key2_key1_VALUE</li>",
"key2_key2" => "<li>key2_key2_VALUE</li>",
"key2_key3" => "<li>key2_key3_VALUE</li>",
"key2_key4" => "<li>key2_key4_VALUE</li>",
"key2_key5" => "<li>key2_key_VALUE</li>",
"key2_key6" => array("key2_key6_key1" => "<h1>key2_key6_key1_VALUE</h1>",
"key2_key6_key2" => "<li>key2_key6_key2_VALUE</li>"
),
),
);
我有这些在一个单独的包含文件,我包括在以往任何时候我可能需要这些来显示。
然后在我的页面上我已经包括了这个,然后是foreach循环,每个循环显示一个复选框,每个单元数组增加一个复选框值。
$i = 0;
foreach($unit as $unit_no){
echo"<div class='pricelist-container'>";
if (is_array($unit_no)){
foreach ($unit_no as $unit_details){
if (is_array($unit_details)) {
foreach ($unit_details as $unit_contents){
if (is_array($unit_contents)){
foreach ($unit_contents as $extra){
echo $extra;
}
}
else{
echo $unit_contents;
}
}
}
else{
echo $unit_details;
}
}
}
else{
echo $unit_no;
}
echo"
$disclaimer
//below is where my problem seems to start.
<p class='fine'> <input type='checkbox' name='unit[]' value='" . "$" . "unit" . "[" . $i++ . "];' checked='checked' /> please uncheck to remove list</p>
<br />
</div>";
}
这是我的问题,因为我拥有它......但是因为我对此非常陌生,所以我可能是非常错误的。
我需要这些复选框来生成$ var [key]作为值,然后在提交表单后它需要能够将这些变量传递到一个新的页面,我再次包含数组文件,这样我就可以循环通过选中的框并在候选名单上再次显示。但我无法以这种方式添加代码,因此每次添加到include文件时都需要添加小循环来回显这些单元中的每一个。因此,我会将此包含文件转换为数据库文件并创建上载页面为网站所有者创建他/她自己的新单元,而无需编辑任何内容以在网站上显示。
if(isset($_POST['unit'])){
if (is_array($_POST['unit'])){
foreach ($_POST['unit'] as $print_unit){
echo $print_unit;
}
}
}
//this loop will echo out the $var[key] as strings.
上面的foreach会将$ var作为字符串回显出来,但不会将其作为带有递增键的$ var。
它基本上是一个产品列表,其中的每个产品的内容都有一个复选框,用于将它们从可打印列表中添加或删除。一切正常,除了创建复选框值...
value='" . "$" . "unit" . "[" . $i++ . "];'
这将创建名为$单元[1]为每个数组我已经在包括但它会产生一个字符串$单元[1]但不是作为一个实际的数组,它是第一个关键。
change'value ='“。”$“。”unit“。”[“。$ i ++。”];''to'value ='“。$ unit [$ i ++]。''' – 2013-04-08 11:00:46
Thanx @ coramba。它现在通过阵列:) 现在,我需要弄清楚的是循环再次呼应它... – RFZees 2013-04-08 11:12:36
好吧然后... 所以它传递数组(告诉我在源代码中它是一个数组),但我不能回显出于某种原因再次传出数组? 它只回应“ARRAY”这个词。 CODE用于ECHO 如果(isset($ _ POST [ '单元'])){ 如果(is_array($ _ POST [ '单元'])){ 的foreach($ _POST [ '单元']为$ print_unit如果(is_array($ print_unit)){foreface($ print_unit as $ P_unit){ echo $ P_unit; } } else { echo“NOT ARRAY
”; } } } } – RFZees 2013-04-08 11:34:32