🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ میلاد
عدم ذخیره سازی اطلاعات اینپوت در دیتابیس
جامعه وردپرس (برنامه نویسی) ایجاد شده در ۲۴ شهریور ۱۴۰۲

درود به شما

مشکل من این هست که وقتی فرم رو ارسال میکنم اطلاعات اینپوت در دیتابیس ذخیره نمیشه ( فرم من سمت فرانت هست )

رکورد جدید در دیتابیس ایجاد میشه ولی فیلدهای دیتابیس خالی هستند

وقتی اینسپکت میگیرم اطلاعات توسط ایجکس ارسال میشه و وضعیت 200 هست اما وقتی var_dump()میکنم به صورت string 0 "" نمایش میده و به خاطر همین در دیتابس اطلاعات خالی قرار میگیره

کدها رو ضمیمه کردم ممنون میشم کمک کنید

// register script
function ajax_load_front_style() {
    wp_enqueue_script('front-ajax', plugin_dir_url(__FILE__) . 'assets/js/front-ajax.js' , array('jquery'));
    wp_localize_script('front-ajax','ajax',[
        'ajaxurl'=>admin_url('admin-ajax.php'),
        ]);
}
add_action('wp_enqueue_scripts', 'ajax_load_front_style');
// ajax in js file
jQuery(document).ready(function ($){
    $('#Front_Popup_Form_Ajax').on('submit',function(e){
        e.preventDefault();
       
        let email = $('#popup-email').val();
        let mobile = $('#popup-mobile').val();
        
        $.ajax({
            url:ajax.ajaxurl,
            type :'post',
            data:{
                action : 'add_data_form_popup',
                email:email,
                mobile:mobile
            },
            
            success:function (response){
                console.log(response);
            },
            
            error: function(error){
            }
// functions
function add_data_form_popup(){
    global $wpdb;
    $data_form_data_table = $wpdb->prefix . 'ajax_form_data';
    
    $sanitize_email_popup = sanitize_text_field($_POST['ajax_email_popup']);
    $sanitize_mobile_popup = sanitize_text_field($_POST['ajax_mobile_popup']);
    $data = [
        'ajax_form_data_email'=>$sanitize_email_popup ,
        'ajax_form_data_mobile'=>$sanitize_mobile_popup 
        ];
        
    $format = ['%s', '%s'];
    $wpdb->insert($data_form_data_table ,$data,$format);
}
add_action('wp_ajax_nopriv_add_data_form_popup','add_data_form_popup');
add_action('wp_ajax_add_data_form_popup','add_data_form_popup');
// html form
            

 

فرم html


            <form id="Front_Popup_Form_Ajax" class="popup-iput-form" enctype="multipart/form-data">
                <input type="text" id="popup-email" name="ajax_email_popup"   autocomplete="off" required>
                <input type="text" id="popup-mobile" name="ajax_mobile_popup"  pattern="[0]{1}[9]{1}[0-9]{2}[0-9]{7}"  autocomplete="off"  required>
              <div>
                <button class="popup-btn" type="submit" name="uwac_save">Submitbutton>
              div>
            form>
میلاد ۲۴ شهریور ۱۴۰۲، ۱۷:۱۳

سلام وقت بخیر شما با جی کوئری مقدار ایمیل رو با متغیری به اسم email میفرستین ولی وقتی دارین کد‌های وردپرس رو میزنید با اسم ajax_email_popup دریافت میکنید

باید ایمیل رو با

$_POST[email]

بگیرین و اونیکی هم به همین ترتیپ

بهترین پاسخ
ابوالفضل محجوب ۲۴ شهریور ۱۴۰۲، ۲۰:۲۱