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

时间:2019-03-15 00:20:05

标签: php html arrays wordpress textarea

我已经为我的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”}

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

以下是相关代码:

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 个答案:

答案 0 :(得分:0)

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