علی
2 سال پیش توسط علی مطرح شد
0 پاسخ

مشکل بارگذاری محتوا پس از ذخیره در js-grid

من از jsgrid در وردپرس استفاده می کنم.
لینک مستندات
سه مشکل دارم:
1- ذخیره سازی به خوبی می شود اما پس از کلیک بر روی آیکون ذخیره، اطلاعات بارگذاری نمی شود و باید صفحه رفرش شود.
2- من یک تگ select به نام type دارم که نمی دانم چگونه آن را انتخاب شده نشان دهم. یعنی میخواهم آنچه در پایگاه داده ذخیره شده به صورت انتخاب شده نمایش داده شود.
3-همچنین تگ select که در بالا اشاره شد به صورت پیش فرض چیزی نمایش نمی دهد. اگرچه من از selectIndex استفاده کرده ام. در تصویر زیر مشخص است.
 تصویر

<script>
    jQuery(document).ready(function ($) {
        $("#jsGrid").jsGrid({
            width: "100%",
            height: "400px",
            inserting: false,
            editing: true,
            sorting: true,
            paging: true,
            data: products,
            fields: [
                {
                    title: "<?php _e('ID', 'CDFU') ?>",
                    name: "ID",
                    type: "number",
                    width: 80,
                    validate: "required",
                    sorter: "number",
                    align: "center",
                    readOnly: true
                },
                {
                    title: "<?php _e('Product Name', 'CDFU') ?>",
                    name: "ProductName",
                    type: "text",
                    width: 400,
                    validate: "required"
                },
                {
                    title: "<?php _e('Price', 'CDFU') ?>",
                    name: "Price",
                    type: "text",
                    width: 150,
                    validate: "required",
                    align: "center",
                },
                {
                    title: "<?php _e('Type', 'CDFU') ?>",
                    name: "Type",
                    type: "select",
                    items: [
                        <?php foreach ($product_type as $type) : ?>
                        {
                            Id: <?php echo $type->id ?>,
                            Name: "<?php echo $type->name ?>"
                        }
                        ,<?php  endforeach; ?>
                    ],
                    width: 150,
                    valueField: "Id",
                    textField: "Name",
                    selectedIndex: 0,
                    valueType: "number|string",
                    validate: "required",
                },
                {
                    title: "<?php _e('Discount', 'CDFU') ?>",
                    name: "Discount",
                    type: "text",
                    width: 80,
                    validate: "required",
                    align: "center",
                },
                {type: 'control', deleteButton: false,}
            ],
            controller: {
                loadData: function (filter) {
                    return [
                        <?php foreach ( $products as $product ): ?>
                        <?php $product_info = wc_get_product($product->ID); ?>
                        {
                            "ID": "<?php echo $product->ID ?>",
                            "ProductName": "<?php echo $product_info->get_name(); ?>",
                            "Price": "<?php echo $product_info->get_regular_price();?>",
                            "Discount": "<?php echo $product_info->get_sale_price(); ?>",
                        },
                        <?php endforeach; ?>
                    ]
                },
                updateItem: function (item) {
                    return $.ajax({
                        type: "POST",
                        url: "<?php echo admin_url('admin-ajax.php') ?>",
                        cache: false,
                        data: {
                            action: 'save_product_info',
                            ID: item['ID'],
                            ProductName: item['ProductName'],
                            Price: item['Price'],
                            Discount: item['Discount'],
                            Type: item['Type'],
                        },
                    });
                },
            }
        });
    });
</script>
<div id="jsGrid"></div>