繁体   English   中英

以文本区域和格式将用户输入显示为数据库PHP中的数组

[英]Display user inputs in textarea and format as array in database PHP

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

例如:

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中。

以下是相关代码:

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.
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM