如何将传入的复选框值转换为一个隐藏的字段值?

时间:2015-02-06 22:45:37

标签: php

我的提交页面包含一些复选框:

<input type="checkbox" name="p_queue_type[]" id="p_queue_type_all" value="All">
<input type="checkbox" name="p_queue_type[]" id="p_queue_type_CR" value="CR" checked>
<input type="checkbox" name="p_queue_type[]" id="p_queue_type_FPU" value="FPU">
<input type="checkbox" name="p_queue_type[]" id="p_queue_type_HOLD" value="HOLD" checked>

我的处理页面需要将任何传入的“p_queue_type []”值转换为一个隐藏字段(此示例所需的结果假设“CR”和“HOLD”被选中):

<input type="hidden" name="p_queue_type[]" value="['CR','HOLD']" />

我正在尝试将此功能合并到一个迭代传入的$_POST数组的现有循环中:

    foreach ($attributes as $field => $value){
        echo('<input type="hidden" name="'.$field.'" id="'.$field.'" value="'.$value.'" />');
    };

但这导致无用的隐藏字段值:

<input type="hidden" name="p_queue_type[]" value="Array" />

1 个答案:

答案 0 :(得分:2)

这应该有效:

foreach ($attributes as $field => $value){
    $value = is_array($value) ? '[' . implode(',', $value) . ']' : $value;
    echo('<input type="hidden" name="'.$field.'" id="'.$field.'" value="'.$value.'" />');
};

它将php数组转换为html友好的数组字符串