在textarea中显示用户输入,并在数据库PHP中格式化为数组

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (56)

我为我的WordPress主题创建了一个自定义选项页面,并为用户添加了一个textarea,用于添加将附加到另一个文件中的数组的选项。用户输入已成功添加到数据库中的相应位置,但它将作为单个字符串存储。我希望用户能够在每一行上输入一个选项,并将输入保存为数组,每行保存为数组中的元素。

例如:

Textarea用户输入:

'my option1'
'my option2'
'my option3'

存储为:

a:1:{s:24:"my_textarea_field_0";s:34:"my option1
my option2
my option3";}

我想将它存储为数组:{“my option1”,“my option2”,“my option3”}

此外,输入textarea的文本将保存到数据库中,但在按下提交按钮后不会显示在textarea中。我想将用户的输入作为数组添加到数据库中,并在提交后继续显示在textarea中。

这是相关代码:

function my_textarea_field_0_render() { 
        $this->$options = get_option('my_settings');
        ?>
        <p style="margin: .25em 0 .5em!important; display: inline-block;">
            <label for="my_settings[my_textarea_field_0]">
            Lorem ipsum dolor sit amet.</label>
        </p>
        <p>
        <textarea cols='145' rows='8' name='my_settings[my_textarea_field_0]'><?php echo $options['my_textarea_field_0'];?></textarea>
        </p>
        <?php
        add_option('my_settings', '$options');
}

我花了一些时间寻找解决方案并修改代码,但我无法弄明白。

提问于
用户回答回答于
  1. 要从textarea的值创建数组,请使用explode函数。也许这个示例代码对您有用。
$arrTextarea = explode("\n", str_replace("\r", "", $valTextarea));
  1. 您应该只使用php函数中的代码。
function my_textarea_field_0_render() { 
    $this->$options = get_option('my_settings');    
    $html = `
        <p style="margin: .25em 0 .5em!important; display: inline-block;">
            <label for="my_settings[my_textarea_field_0]">
            Lorem ipsum dolor sit amet.</label>
        </p>
        <p>
            <textarea cols='145' rows='8' name='my_settings[my_textarea_field_0]'>` . 
                $options['my_textarea_field_0'] . 
            `</textarea>
        </p>`;
    add_option('my_settings', '$options'); // I didn't understand what is $options.
}

扫码关注云+社区

领取腾讯云代金券