💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱۴ Siamak Ahmadi
عمل نکردن ajax
مصطفی زارعی حل شده توسط مصطفی زارعی

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

استاد زمانی که کدهای ajax  رو مینویسم و روی button کلیک میکنم صفحه باز هم رفرش میشه در صورتی که توی سورس صفحه ی لاگین فایل js وجود داره 

سلام خدمت شما. احتمالا کدهای JS مشکل دارن.کدهایی که برای handle کردن submit event نوشتید به درستی کار نمیکنه.

کیوان علی محمدی ۳۰ خرداد ۱۳۹۹، ۱۳:۰۷

ولی کاملا مشابهه ویدیو هستش کد ها 

از تگ <submit/> استفاده کردم کلا رفرش میشه ولی input با تایپ submit خروجی 0 میده

Siamak Ahmadi ۳۰ خرداد ۱۳۹۹، ۱۳:۱۰

خب ما چیزی به نام تگ submit نداریم.نمونه کدهای ajax رو به صورت کد در همین جا ارسال کنید.

کیوان علی محمدی ۰۱ تیر ۱۳۹۹، ۱۰:۰۶

jQuery(document).ready(function($){
        $('#rigester_form').on('wp_alth_register',function (event) {
                event.preventDefult();
                let email_input = $('#email_input').val();
                let name_input = $('#wp_alth_register');
                let lastname_input = $('#lastname_input');
                let password_input = $('#password_input').val();
                $.ajax({
                        url : '/wp-admin/admin-ajax.php',
                        type : 'post',
                        datatype : 'json',
                        data : {
                                action:'wp_alth_register',
                                user_email: email_input ,
                                user_name: name_input ,
                                user_lastname: lastname_input ,
                                user_password: password_input ,
                        },
                        success: function(response){
                        },
                        error: function(error){
                                if(error){
                                        alert('error ajax');
                                }
                        }
                });
        });
});

کد‌های ajax

<div class="auth-wrapper">
<div class="register-wrapper">
<form id="rigester_form"  method="post">
        <div class="form_row">
                <label for="email_input">
                        Type in Email
                </label>
                <input type="text" id="email_input" name="email">
        </div>
        <div class="form_row">
                <label for="name">
                        Type in name
                </label>
                <input type="text" id="name_input" name="name">
        </div>
        <div class="form_row">
                <label for="lastname_input">
                        Type in lastname
                </label>
                <input type="text" id="lastname_input" name="lastname">
        </div>
        <div class="form_row">
                <label for="password_input">
                        Type in Password
                </label>
                <input type="password" id="password_input" name="password">
        </div>
                <br>
                <input type="hidden" name="create_applicant" value="create_applicant">
        <div class="form_row">
                <button name="wp_alth_register">sign in</button>
        </div>
</form>
</div>
</div>

کد‌های فرم

 

هرررکاری میکنم بازم رفرش میشه ?

Siamak Ahmadi ۰۱ تیر ۱۳۹۹، ۱۷:۵۵
$('#rigester_form').on('wp_alth_register',function (event) {

لطفا دقت کنید که رویدادی به اسم wp_alth_register نداریم و باید این برابر با submit باشه.

کیوان علی محمدی ۰۲ تیر ۱۳۹۹، ۰۵:۵۰

بله submit هم گذاشته بودم ولی نشد الان هم دوباره امتحان کردم ولی کار نمیکنه

Siamak Ahmadi ۰۲ تیر ۱۳۹۹، ۰۵:۵۳

برای button یک attribute به اسم type=submit تعریف کنید و دوباره تست کنید

کیوان علی محمدی ۰۲ تیر ۱۳۹۹، ۰۷:۱۸

تست کردم و رفرش میشه توی سورس صفحه ای که شورتکد رو میذارم هم فایل js لینک شده و هستش حتی alert خالی هم که توی فایل js میزارم بعد از رفرش صفحه alert  نمیده

Siamak Ahmadi ۰۲ تیر ۱۳۹۹، ۰۸:۵۷

مقدار lastname_input رو هم چک کنید چون متد val رو براش فرخوانی نکردید.

کیوان علی محمدی ۰۳ تیر ۱۳۹۹، ۰۸:۴۲

اتفاقی نیوفتاد

 

Siamak Ahmadi ۰۳ تیر ۱۳۹۹، ۰۸:۵۰

این کد رو تست کنید ببینید چطور میشه.

$(document).on('submit','#rigester_form',function (event) {

 

کیوان علی محمدی ۰۳ تیر ۱۳۹۹، ۰۸:۵۵

استاد این سری کل فایل پلاگین رو فرستادم.

امتحان کردم کد رو  باز هم نشد.

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

این پیغام رو میده 

(به‌روزرسانی ناموفق بود. پاسخ، یک پاسخ JSON معتبر نیست.)

ممنون میشم یه چک کنید

Siamak Ahmadi ۰۳ تیر ۱۳۹۹، ۰۹:۰۳

سلام .

داخل فایل js :

رویداد برابر submit بزارید.

$("#rigester_form").on("submit", function (event) {

event.preventDefault() اشتباه نوشته شده .

//event.preventDefult();
event.preventDefault();

id فیلد name هم اشتباه نوشته شده.

//let name_input = $("wp_alth_register").val();
let name_input = $("#name_input").val();

داخل فایل function.php :

// add_action('wp_ajax_create_applicant','create_applicant');
add_action('wp_ajax_nopriv_wp_alth_register','create_applicant');

که wp_ajax_nopriv_actionname باید استفاده کنید.

بهترین پاسخ
مصطفی زارعی ۰۳ تیر ۱۳۹۹، ۱۶:۲۳

ایول? 

چه اشتباه های  بدی داشتم ??

درست شد سپاااااس 

Siamak Ahmadi ۰۳ تیر ۱۳۹۹، ۱۶:۳۳