۲ Reza
مقدار آیدی را null نشون میده
جامعه وردپرس (برنامه نویسی) ایجاد شده در ۱۳ آذر ۱۴۰۳

سلام
این قسمت رو با ویدیو جلو بردم و چندبار چک کردم مشکلی نداشتم ولی مقدار p_id را null برمیگردونه حتی تو network هم چک کردم و اسکرین هم گرفتم که خدمتتون میفرستم. اطلاعات قبل و بعد از ویرایش کالا رو که این ریسپانس رو میده اسکرین گرفتم. نمیدونم مشکل از کجاس ممنون میشم راهنمایی کنید

RqL5Gfy51fdXezVq.png

سلام. وقت بخیر 

کدهای مربوط به قسمت دریافت response (فایل Ajax)رو قرار بدید تا بررسی کنیم. 

مصطفی زارعی ۱۵ آذر ۱۴۰۳، ۰۵:۳۳
آیدی را الان میگیرم و تو inspect هم مقدارش رو گرفتم ولی باز محصول ادیت نمیشه 
 <<dashboard-ajax.js file>>
$('.select-product').on('click', function () {
        let el = $(this);
        let product_ID = el.data('id');
        $.ajax({
            url: 'http://localhost/wp-ajax/wp-admin/admin-ajax.php',
            type: 'post',
            data: {
                action: 'select_product_by_id',
                product_ID: product_ID
            },
            success: function (response) {
                let data = JSON.parse(response);
                $('#p_ID').val(data.ID);
                $('#p_name').val(data.p_name);
                $('#p_brand').val(data.p_brand);
                $('#p_model').val(data.p_model);
                $('#p_price').val(data.p_price);
                $('#p_status').val(data.p_status);
                console.log(data);
            },
            error: function (error) {
                console.log("error:", error);
            }
        });
    })
    $('#update_product').on('submit', function (e) {
        e.preventDefault();
        let p_ID = $('#p_ID').val();
        let p_name = $('#p_name').val();
        let p_brand = $('#p_brand').val();
        let p_model = $('#p_model').val();
        let p_price = $('#p_price').val();
        let p_status = $('#p_status').val();
        $.ajax({
            url: 'http://localhost/wp-ajax/wp-admin/admin-ajax.php',
            type: 'post',
            dataType:'json',
            data: {
                action: 'update_product',
                p_ID: p_ID,
                p_name: p_name,
                p_brand: p_brand,
                p_model: p_model,
                p_price: p_price,
                p_status: p_status
            },
            success: function (response) {
                console.log("response:", response);
            },
            error: function (error) {
                console.log("error:", error);
            }
        });
    })
})
----------------------------------------------------------------------
 <<products.php file>>
function select_product_by_id(){
    global $wpdb;
    $table = $wpdb->prefix . 'products';
    $ID = (int)$_POST['product_ID'];
    $stmt = $wpdb->get_row($wpdb->prepare("SELECT * FROM $table WHERE ID='%d'",$ID));
    $output = [
        'ID' => $stmt->ID,
        'p_name' => $stmt->p_name,
        'p_brand' => $stmt->p_brand,
        'p_model' => $stmt->p_model,
        'p_price' => $stmt->p_price,
        'p_status' => $stmt->p_status
    ];
    echo json_encode($output);
    wp_die();
}
function update_product()
{
    global $wpdb;
    $table = $wpdb->prefix . 'products';
    $p_ID = intval($_POST['ID']);
    $p_name = sanitize_text_field($_POST['p_name']);
    $p_brand = sanitize_text_field($_POST['p_brand']);
    $p_model = sanitize_text_field($_POST['p_model']);
    $p_price = sanitize_text_field($_POST['p_price']);
    $p_status = intval($_POST['p_status']);
    $data = [
        'p_name' => $p_name,
        'p_brand' => $p_brand,
        'p_model' => $p_model,
        'p_price' => $p_price,
        'p_status' => $p_status
    ];
    $where = ['ID' => $p_ID];
    $where_format = ['%d'];
    $format = ['%s','%s','%s','%s','%d'];
    $wpdb->update($table,$data,$where,$format,$where_format);
}
-------------------------------------------------------------------------------
 <<product-list.php file>>
<td>
                    <i class="bi bi-pencil select-product" data-bs-toggle="modal" data-bs-target="#editProduct" data-id="<?php echo $product->ID ?>" id="delete-item-<?php echo $product->ID ?>"></i>
                    <i class="fas fa-times-circle delete-product" id="delete-item-<?php echo $product->ID ?>" data-id="<?php echo $product->ID ?>" data-nonce="<?php echo wp_create_nonce() ?>"></i>
                </td>
Reza ۱۹ آذر ۱۴۰۳، ۱۳:۴۱