How to save multiple repeatable fields as array in

2019-09-19 06:51发布

On the theme im working i'm trying to make slideshow. I have everything set so far i just don't understand how to save them in database when there are multiple slides.

I will skip the code as it's very large ill just add example of input values.

Each slide is made of image upload field(which is basically text field that holds link to image) and textarea field for the text in slide.

So values of the slide are like this.

Slide 1 -> $slide[image][0]  -- $slide[text][0]

Slide 2 -> $slide[image][1]  -- $slide[text][1]

Slide 3 -> $slide[image][2]  -- $slide[text][2]

It's a WordPress theme so wordpress it self is capable to save an array when it recognize it. And if anyone is familiar theme is built upon Options Framework.

When i save this, this is what i get in database.

a:1:{s:13:"slide_example";a:1:{s:5:"image";s:0:"";}}

when (i guess) it should be like this

a:1:{s:13:"slide_example";a:1:{s:5:"image";s:0:"slide text";};a:2:{s:5:"image";s:0:"slide text";};a:3:{s:5:"image";s:0:"slide text";}}

2条回答
ら.Afraid
2楼-- · 2019-09-19 07:22

I made it working. Im not sure if this is proper approach but it's working for now.

I used array_map.

$slider = array_map(null, $slide['image'], $slide['editor'] );
查看更多
神经病院院长
3楼-- · 2019-09-19 07:26

Your values should be setup like this:

Slide 1 -> $slide[0][image]  -- $slide[0][text]

Slide 2 -> $slide[1][image]  -- $slide[1][text]

Slide 3 -> $slide[2][image]  -- $slide[2][text]
查看更多
登录 后发表回答