Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中显示多级动态表单字段?_Php_Arrays_Forms_Multidimensional Array - Fatal编程技术网

如何在PHP中显示多级动态表单字段?

如何在PHP中显示多级动态表单字段?,php,arrays,forms,multidimensional-array,Php,Arrays,Forms,Multidimensional Array,我的HTML表单,由PHP从MySQL数据库生成: ` 在生成表单时,应该确保尽可能接近所需的数组结构,而不是试图在提交时重新格式化。您无法准确获取所需内容,但会在名称中显式生成密钥,如下所示: : : : : : : : : : 将生成如下所示的数组: 数组( “产品”=>阵列( 0=>数组( '姓名'=>'发言人', “组件名称”=>数组( 0=>“颜色”, 1=>“直径”, 2=>“品牌”, ), “组件_值”=>数组( 0=>“黑色”, 1 => '10', 2=>

我的HTML表单,由PHP从MySQL数据库生成: `


在生成表单时,应该确保尽可能接近所需的数组结构,而不是试图在提交时重新格式化。您无法准确获取所需内容,但会在名称中显式生成密钥,如下所示:


: 
: 
: 
: 
: 
: 
: 
: 
: 
将生成如下所示的数组:

数组(
“产品”=>阵列(
0=>数组(
'姓名'=>'发言人',
“组件名称”=>数组(
0=>“颜色”,
1=>“直径”,
2=>“品牌”,
),
“组件_值”=>数组(
0=>“黑色”,
1 => '10',
2=>Pokijan',
),
),
1=>数组(
“名称”=>“桌面电脑”,
“组件名称”=>数组(
0=>“品牌”,
1=>“操作系统”,
2=>“处理器”,
3=>“RAM”,
4=>“硬盘驱动器”,
5=>“SSD”,
),
“组件_值”=>数组(
0=>Tulkiyem',
1=>“Linux”,
2=>“英特尔”,
3=>“16 GB”,
4 => '-',
5=>“1600 GB”,
),
),
),
)
现在执行输出变得更加容易:


    因为我们已经明确定义了键,所以我们知道与组件名称对应的值将位于
    'component\u values'
    下的同一个键上


    还请注意,我使用了输出HTML,因为这允许IDE和高级文本编辑器正确突出显示HTML元素并为它们提供自动完成值,而不是将HTML打印为字符串。

    什么是“正确数组”?您希望输出什么?编辑的问题。谢谢,
    颜色
    品牌
    等都是输入,这似乎很奇怪。它们不应该硬编码,只创建作为输入的值吗?是的,这些变量是动态的,所以值是动态的。谢谢你的解决方案,它工作得更好。
    <!-- 1st product -->
    <input name="product[]" value="Speaker" />
    <!-- 3 components & its values of 1st product -->
    <input name="component_name[]" value="Color" />: <input name="value_name[]" value="Black" />
    <input name="component_name[]" value="Diameters" />: <input name="value_name[]" value="10" />
    <input name="component_name[]" value="Brand" />: <input name="value_name[]" value="Pokijan" />
    <!-- 2nd product -->
    <input name="product[]" value="Desktop PC" />
    <!-- 6 components & its values of 2nd product -->
    <input name="component_name[]" value="Brand" />: <input name="value_name[]" value="Tulkiyem" />
    <input name="component_name[]" value="OS" />: <input name="value_name[]" value="Linux" />
    <input name="component_name[]" value="Processor" />: <input name="value_name[]" value="Intel " />
    <input name="component_name[]" value="RAM" />: <input name="value_name[]" value="16 GB" />
    <input name="component_name[]" value="HDD" />: <input name="value_name[]" value="-" />
    <input name="component_name[]" value="SSD" />: <input name="value_name[]" value="1600 GB" />
    <input type="submit" value="Send" />
    </form>`
    
    $cid=$_POST['cid'];
    $komponen=$_POST['komponen'];
    $opsi=$_POST['opsi'];
    echo "<ul>";
    $jb=count($cid);
    for($i=0; $i<$jb;$i++)
    {
        if($cid[$i]<>"")
        {
            $jk=count($komponen);
            echo "<li>Product-$i: $cid[$i]
            <ol>";
                for($x=0;$x<$jk; $x++)
                {
                   echo "<li>$komponen[$x]: $opsi[$i][$x]</li>";
                }
            echo "</ol></li>";
        }
    }
    echo "</ul>";
    ?>`