【问题标题】:Saving data in theme options page wordpress在主题选项页面 wordpress 中保存数据
【发布时间】:2013-07-20 07:21:16
【问题描述】:

我正在尝试在我的主题选项页面中创建动态行,并尝试将这些数据保存在序列化数据中。

随着我添加工作经验,添加了新行..现在我只想将此值保存在序列化数据中并相应地对它们进行排序(可能按开始日期或序列号。)

我的 JQUERY 代码

jQuery('a.add-author').click(function(event) {
    alert("asdas");
    event.preventDefault();
    counter++;
    var newRow = jQuery('<tr><td><input style="width:200px" type="text" name="designation' + counter + '"/></td>
    <td><input style="width:200px" type="text" id="start_date' + counter +'" name="start_date' + counter + '"/></td>
    <td><input style="width:200px" id="end_date' + counter +'" type="text" name="end_date' + counter + '"/></td></tr>');
    jQuery('table.authors-list').append(newRow);
    $("#start_date"+ counter).datepicker();
    $("#end_date"+ counter).datepicker();

});

我的选项数组

array(
    "name" => "Designation",
    "desc" => "Enter your Designation of company.",
    "id" => $shortname."_designation",
    "type" => "workexp",
    "std" => ""
)

我的 HTML 代码类型工作表达式

case 'workexp':

?>
<a href="#" title="wrk_exp" class="add-author">Add Work Experience</a>
<table class="authors-list" border="1" bordercolor="#ddd" 
style="background-color:#F5F5F5" width="100%" cellpadding="3" cellspacing="3">
    <tr><td>Designation</td><td>StartDate</td><td>EndDate</td></tr>
    <tr>
        <td><input style="width:200px" type="text" name="designation"/></td>
        <td><input style="width:200px" type="text" id="start_date" name="start_date"/></td>
        <td><input style="width:200px" type="text" id="end_date" name="end_date"/></td>
    </tr>
</table>

<?php
break;

保存按钮后我的代码

if ( $_GET['page'] == basename(__FILE__) ) {

    if ( 'save' == $_REQUEST['action'] ) {

        foreach ($options as $value) {
            update_option( $value['id'], $_REQUEST[ $value['id'] ] );
        }

        foreach ($options as $value) {
            if( isset( $_REQUEST[ $value['id'] ] ) ) {
                update_option( $value['id'], $_REQUEST[ $value['id'] ]  );
            } else {
                delete_option( $value['id'] );
            }
        }

        header("Location: admin.php?page=theme-options.php&saved=true");
        die;
    } 
}

【问题讨论】:

    标签: php jquery wordpress serialization wordpress-theming


    【解决方案1】:

    在您的服务器端,您必须先将值转换为数组。然后update_option会自动序列化数据。

    【讨论】:

    • 您有在后端处理表单的 PHP 代码示例吗?
    • 根据我所见,您正在创建具有相同名称属性的多个输入字段。您的 javascript 需要调整为按顺序给它们命名(可能使用您的计数器变量)或使它们成为一个数组(即 designation[]、start_date[])。然后你需要在你的 PHP 脚本中获取它们。目前,我根本没有看到你抓住它们。
    猜你喜欢
    • 2011-09-08
    • 1970-01-01
    • 2012-08-13
    • 2014-08-02
    • 1970-01-01
    • 2012-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多