অ্যাডমিন এজ্যাক্স অনুরোধ 0 সাথে মর ()


10

সুতরাং আমি প্রশাসনিক অঞ্চলে একটি এজেএক্স কলের জন্য এই কনফিগারেশনটি ব্যবহার করছি (এটির মতো ):

add_action( 'admin_head', 'ajaxPerNgg' );

function ajaxPerNgg(){ ?>
<script type="text/javascript" >
jQuery(document).ready(function() {
    jQuery("#message").remove();
    jQuery("#errore a#attivo").click(
        function(){
            var data = {
                action: 'my_action'
            };
            jQuery.post(ajaxurl, data, function(response) {
                if(response == "attivato")
                    jQuery("#errore a#inattivo").attr("id","completato").html("Attivato");
                else
                    jQuery("#errore a#inattivo").attr("id","attivo").html("Attivalo ora");
            });
        }
    );
});
</script>
<?php }

add_action('wp_ajax_my_action', 'my_action_callback');

function my_action_callback() {
    echo 'attivato';
    die();
}

এটি কেবল একটি পরীক্ষার কোড, তবে এটি "অ্যাটিভ্যাটো" স্ট্রিংয়ের পরিবর্তে সর্বদা 0 প্রদান করে। এটি 404 ত্রুটি ছাড়াই, এজাক্স url সঠিকভাবে সন্ধান করে।
সমস্যাটা কি?


আপনি কি কখনও এই সমস্যাটি বুঝতে পেরেছেন? যদি তা হয় তবে আপনি কি দয়া করে উত্তরটি মন্তব্য করতে (বা গ্রহণ করতে পারেন) যা আপনার সমস্যার সমাধান করেছে? যদি এর কোনওটিই আপনার সমস্যার সমাধান করে না এবং এটির সমাধান হয়ে যায় , আপনি দয়া করে নীচে একটি উত্তর যুক্ত করতে পারেন? ধন্যবাদ!
jmort253

@ jmort253 হাই, এই মুহুর্তে আপনার উত্তর দেওয়ার জন্য দুঃখিত, তবে এই মুহূর্তে আমার এখনও এই সমস্যা রয়েছে এবং আমি ওয়েবে কোনও সমাধান খুঁজে পাইনি: '(আমি কিছুটা ফাঁকা সময় পেলে আমি এটি নিয়ে কাজ করছি; যদি আমি সমাধানটি পাই তবে , আমি এখানে লিখব;)
ইভানো মার্কুরি

ঠিক আছে, এখানে একই। যদি আমি তা বুঝতে পারি, আমি পোস্ট করব। :) যোগাযোগ রেখো.
jmort253

1
আমি আমার সমস্যার সমাধান করেছি, wp_ajax_my_action"আমার_অ্যাকশন" অংশটির প্রত্যয়টি অবশ্যই jQuery পোস্টে ব্যবহৃত ক্রিয়াটির সাথে মেলে। আমি দেখতে পাচ্ছি যে আপনার মিল আছে, সুতরাং এটি আপনার ক্ষেত্রে সমস্যা নয়। অ্যাডমিন পৃষ্ঠা থেকেও এটি কাজ করে চলেছে, যা আপনি করার চেষ্টা করছেন। এই এজ্যাক্স কল করার সময় আপনি কি লগ ইন করেছেন? নাকি আপনি লগ আউট করেছেন?
jmort253

ঠিক। খেয়াল করেনি! ;)
রটউইক গাঙ্গুরদে

উত্তর:


21

এই হিসাবে ভাল যোগ করুন add_action('wp_ajax_nopriv_my_action', 'my_action_callback');। লক্ষ্য করুন nopriv

এটি আপনার সমস্যার সমাধান করবে!


2
আমি "wp_ajax_SUFFIX" এর প্রত্যয়টি ক্রিয়াটির সাথে মেলে তা নিশ্চিত করে এটি ঠিক করেছি, যাতে jQuery পোস্টের ক্রিয়াটিও "SUFFIX" হয়। তবে, আমাকে নপ্রিভ ব্যবহার করার দরকার ছিল না ... নিশ্চিত নয় যে এটি অপের সমস্যাটির জবাব কিনা, কারণ এটি অ্যাডমিন পৃষ্ঠায় ঘটে যাওয়া একটি ক্রিয়া, যার অর্থ আপনি লগ ইন করেছেন, যা আপনাকে বোঝায় কোনও নপ্রিভ হ্যান্ডলার নিবন্ধকরণ করার দরকার নেই ...
jmort253

15

আমারও একই সমস্যা ছিল। সমাধান:

add_action('wp_ajax_nopriv_my_action', 'my_action_callback');
add_action('wp_ajax_my_action', 'my_action_callback');

যদি আপনি উভয়ই যোগ করেন না (নাপ্রিভের সাথে এবং নাও) তবে এটি সাইন ইন মোডে বা সাইন আউট মোডে কেবলমাত্র কাজ করবে work nopriv সাইন আউট জন্য, অন্যটি সাইন ইন করার জন্য।


4

এটি আপনার সমস্যা কিনা তা নিশ্চিত না, তবে আমি কেবল "0" এর প্রতিক্রিয়া পাচ্ছিলাম এবং এটি খুঁজে পেতে আমার সবচেয়ে দীর্ঘ সময় লেগেছে। আপনি আপনার পিএইচপি ফাংশনটি রেখেছেন exitবা নিশ্চিত dieকরেছেন তা বাদ দিয়ে, আমি খুঁজে পেলাম যে আপনার add_action('wp_ajax_...বিটটি আপনার প্লাগইনের শীর্ষ স্তরে রাখতে হবে। আমি আমার admin_menuহুকের ভিতরে বাসা বেঁধেছিলাম, যা কাজ করে না। আমি নিশ্চিত নই যে আপনার উপরের কোডটি আপনার শীর্ষ স্তরের প্লাগইন পিএইচপি ফাইলের (যেমন আমার ছিল) কোনও ফাংশনের ভিতরে অন্তর্ভুক্ত করার অংশ কিনা।


1
এখানে একই সমস্যা .. এই ধরণের সমস্যাটি কীভাবে ঠিক করা যায় তা নিশ্চিত নয়, যেহেতু আমাদের মাঝে মাঝে এজাক্স প্রতিক্রিয়া কোডের শেষ অংশে বা ভিতরে রাখা প্রয়োজন।
এরি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.