【问题标题】:How to create Json objects from foreach $_POST loop如何从 foreach $_POST 循环创建 Json 对象
【发布时间】:2020-01-31 08:13:44
【问题描述】:

我做了一些随机输入名称,因为它是一个拖放页面构建器,所以我无法猜测用户将使用多少元素,所以我创建了一个随机输入名称, 为此,我正在为 $_POST 请求使用 php foreach 循环。我试图将其编码为 json,然后将其保存到数据库中。但看起来我的 json 有问题。 这是我的 html 演示代码:

<input style="display:none;" name="DATA-BLOCK-A(some random string)">
<input style="display:none;" name="DATA-BLOCK-B(some random string)">

PS:A用于选择元素A,B用于选择元素B。

这是我的 PHP 代码:

if (isset($_POST)) {
    //$arr = array();
foreach($_POST as $key => $value)
    {

     $arr = array($key => $value);
     $encode = json_encode($arr);
    echo $encode;
    }


}

结果如下:

{"sortlist":"block[]=D5e3385b75a75d&block[]=K5e3385b85a75e&block[]=C5e3385b95a75f&block[]=F5e3385ba5a760"}{"save_cont_flag":"0"}{"DATA-block-D5e3385b75a75d":"0#TRANSP

<\/p>"}{"DATA-block-K5e3385b85a75e":"0#TRANSP20"}{"DATA-block-C5e3385b95a75f":"01#TRANSP0images\/250place.jpg\u00b8"}{"text-1573532276681":""}{"textarea-1573532278320":""}{"DATA-block-F5e3385ba5a760":"121212unundefined"}{"page_name":"123"}{"aff_link":""}{"pause_link":""}{"seo_title":""}{"fbook":""}{"seo_desc":""}{"seo_keywords":""}{"back_color":"#EEEEEE"}{"body_color":"#FFFFFF"}{"back_image":""}{"ty_font_color":"#000000"}{"ty_override":""}{"ty_name":"12314"}{"ty_stm":""}{"modal_para_width":"0"}{"catcha_url":""}{"catcha_un":"Yes"}{"catcha_message":""}{"code_head":""}{"code_body":""}{"modal_share_width":"0"}{"modal_cta_width":"0"}{"modal_video_width":"0"}{"modal_mp_width":"0"}{"modal_stm_width":"0"}{"modal_image_width":"0"}{"modal_bonus_width":"1"}{"ty_headline":""}{"modal_spacer_width":"0"}{"att_bar_status":"0"}{"att_delay_in":"0"}{"att_bar_color":"#bbbbbb"}{"att_gradient":"0"}{"att_text_color":"#000000"}{"att_text_font":"Open Sans:400"}{"att_text_size":"14"}{"att_bar_message":"Add Your Attention Bar Text Here"}{"att_link_color":"#000000"}{"att_link_label":"Add Link Text Here"}{"att_link_url":"http:\/\/commissiongorilla.com"}{"count_font":"Open Sans:800"}{"count_size":"55"}{"count_status":"0"}{"count_type":"0"}{"count_end":"01\/31\/2020 6:41 AM"}{"count_zone":"0.0"}{"count_eg_days":"0"}{"count_eg_hours":"0"}{"count_eg_mins":"0"}{"count_digit_color":"#bbbbbb"}{"count_label_color":"#bbbbbb"}{"count_background":"0"}{"count_language":"1"}{"count_exp":"0"}{"count_url":"http:\/\/commissiongorilla.com"}{"count_add_days":"0"}{"count_add_hours":"0"}{"count_add_mins":"0"}{"modal_countdown_width":"0"}{"modal_review_width":"0"}

以及如何将所有 A BLOCKS 和 B BLOCKS 分开? 谢谢!

【问题讨论】:

  • &lt;\/p&gt; 来自哪里?听起来像是表单字段属性中缺少引号
  • 这是DATA-block-D5e3385b75a75d的值

标签: php html json


【解决方案1】:

您不需要使用循环。

刚刚使用json_encode

$json = json_encode($_POST);

如果你需要让key包含DATA-block-,你可以写:

foreach ($_POST as $key => $value) {
    if (strpos($key, 'DATA-block-') !== false) {
        // Here `DATA-block-{}`
    }
}

【讨论】:

    【解决方案2】:

    如果将输入名称更改为 DATA-BLOCK-A[]DATA-BLOCK-B[]$_POST['DATA-BLOCK-A'] 将包含所有 a 块的数组,$_POST['DATA-BLOCK-B'] 将包含所有 b 块的数组。

    这也消除了生成随机字符串的需要。

    【讨论】:

    • 这不起作用,正如您在结果中看到的那样,我正在对元素进行排序。就像我有两个块“block[]=D5e3385b75a75d&block[]=K5e3385b85a75e”和块 D5e3385b75a75d 将在第 1 号和 K5e3385b85a75e 将在第 2 号当我将从数据库中调用它们以显示内容时。
    猜你喜欢
    • 2013-06-10
    • 2015-07-01
    • 2013-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多