অ্যাডমিন আজাক্স 0 এ ফিরে আসছে


28

আমি বিশেষত jQuery এবং AJAX এ তুলনামূলকভাবে নতুন। আমার কাছে রিটার্নের মানটি সর্বদা 0 হওয়ার সাথে একটি ছোট সমস্যা রয়েছে যদিও আমি মনে করি এটি আসলে সাফল্যের বার্তা এবং এটি কোনও কিছুই ফেরায় না।

আমি গুগল-আয়াতকে ঘৃণা করেছি এবং পিএইচপি কলব্যাকে আমার ডাই () ফাংশন রয়েছে এবং আমি বিশ্বাস করি যে অ্যাড_অ্যাক্টসগুলি সঠিক।

আমি একটি স্থানীয় হোস্টে কাজ করছি, যদিও আমি সন্দেহ করি যে এটি প্রভাবিত করে এবং এগুলি অ্যাডমিনের মধ্যেই, শেষ প্রান্তে নয়। আমি এটিও পরীক্ষা করেছিলাম যে জেএসগুলি এনকুইড এবং স্থানীয়করণ করা হয়েছে।

আমি ক্রোম বিকাশকারী অঞ্চলে একটি 200 ওকে বার্তা পাই।

আমি http://codex.wordpress.org/AJAX_in_Plugins থেকে বেসিক এজেএক্সটিও পরীক্ষা করে দেখেছিলাম এবং এটি 0 এ ফিরে এসেছে, যা আমাকে বিস্মিত করে তোলে যে এটি নীচে বর্ণিত কোড ব্যতীত অন্য কিছু কিনা।

এই মুহূর্তে আমি এটিকে আবার কিছু jQuery এ প্রেরণ করার চেষ্টা করছি। কোন সাহায্য প্রশংসা করা হবে।

JQuery

jQuery(document).ready(function(){
    jQuery('.cl_link_buttons').val('id').click(function() {

            var currentid = jQuery(this).attr('id');

            //alert(currentid);
            console.log(currentid);

            jQuery.ajax ( data = {
                action: 'cleanlinks_ajax_get_post_data',
                url: ajaxurl,
                type: 'POST',
                dataType: 'text',
                "currentid" : currentid

            });

            jQuery.post(ajaxurl, data, function(response) {

                var dataz = response;
                alert( dataz );
                console.log (dataz); //show json in console


            });

            return false;

    }); //end click event
}); //end doc ready

পিএইচপি

add_action("wp_ajax_cleanlinks_ajax_get_post_data", "cleanlinks_ajax_get_post_data");
add_action("wp_ajax_nopriv_cleanlinks_ajax_get_post_data", "cleanlinks_ajax_get_post_data");

function cleanlinks_ajax_get_post_data() {

$from_ajax =  $_POST['currentid'];

echo "do" . $from_ajax . "something";

die();


}

1
আপনি যাচাই করেছেন যে আজাক্সারল সঠিকভাবে সেট করা আছে?
অ্যান্ড্রু বার্টেল

আপনার ব্রাউজার কনসোল কোন ত্রুটি দেখায়? যদি তাই হয়, তারা কি?
s_ha_dum

2
jQuery('.cl_link_buttons').val('id').click(function()বিজোড় দেখাচ্ছে।
ফুসিয়া

অ্যান্ড্রু, হ্যাঁ আমি বিশ্বাস করি এটি সঠিক কিনা, ক্রোম ইন্সপেক্টর অনুরোধ url ডোমেন / WP-অ্যাডমিন / অ্যাডমিন-ajax.php দেখানো হয়
Apina

@s_ha_dum কোন ত্রুটি দেখানো
Apina

উত্তর:


40

একটি 0প্রতিক্রিয়া উপায় হয় এই ক্রিয়াটি কর্ম এর কলব্যাক ফাংশন (অ্যাজাক্স তথ্য) অথবা যে সেট না করা হয় খুঁজে পাওয়া যাবে না।


2
হ্যাঁ, এটি সঠিক উত্তর। শেষ পর্যন্ত ডাই () যুক্ত করা সমস্ত হ'ল স্ক্রিপ্টটি সমাপ্ত করা। এই উত্তরটি প্রযুক্তিগতভাবে সঠিক যদি আপনি 0 টি আউটপুটটির শেষের সাথে সংযুক্ত করে দেখেন তবে আপনার সমস্ত কিছু '0' হয় তবে এর অর্থ কোনও কিছুই ফেরানো হয়নি এবং এই উত্তরে বর্ণিত হিসাবে আপনার একটি ত্রুটি রয়েছে।
হাইব্রিড ওয়েব দেব

অথবা আপনি কেবলমাত্র পিএইচপি-তে উদ্দেশ্য হিসাবে কিছুই ফেরান নি যা এজ্যাক্স অনুরোধ পরিচালনা করে। কোনও কিছু প্রতিধ্বনি করতে ভুলবেন না, অন্যথায়, .alwaysএটি ক্যাপচার করতে ব্যবহার করুন ।
সলোমন ক্লসন

20

আপনাকে যা করতে হবে তা হ'ল die();আপনার ফাংশনটির শেষে।

কারণ এবং আরও এখানে দেখুন: http://codex.wordpress.org/AJAX_in_Plugins

নোট:

  • echoমৃত্যুদন্ড কার্যকর করার আগে আপনার কিছু করা উচিত die। এটি সার্ভার ত্রুটিগুলি রোধ করবে এবং ডিবাগ করার সময় সহায়তা করবে।

7
এটি ডাব্লুপি আজাক্স 0 সমস্যার উত্তর।
বেন র্যাকিকোট

প্রকৃতপক্ষে, আপনি যদি die()কিছু কিছু প্রতিধ্বনিত না করে কেবল যুক্ত করেন তবে এটি আপনাকে একটি 500 অভ্যন্তরীণ সার্ভার ত্রুটিও দেবে এবং এর 0জন্য ফিরে আসবে wp-admin/admin-ajax.php। আপনি যদি সর্বদা মান নির্ধারণ করেন এবং কিছুই ফেরত দেওয়ার প্রয়োজন হয় না এমন কি আপনার সর্বদা কিছু প্রতিধ্বনি করা উচিত। অন্যথায়, যদি আপনি কোনও কিছুই প্রতিধ্বনি করেন না এবং die(), আপনাকে .always()এটি ক্যাপচার করতে ব্যবহার করতে হবে, কারণ এটি এতে থাকবে না .done(), এটি এতে থাকবে .fail()কারণ এটি = 500 ত্রুটি ছাড়াই মারা যায়।
সলোমন ক্লসন

আপনার কি কিছু লিঙ্ক, বা ওয়ার্কিং কোড রয়েছে, তাই আমরা একবার নজর দিতে পারি? @ সলোমনক্লসন
ফ্রান্সিসকো

আমার সমস্ত উত্তর লাইভ পরিবেশে পরীক্ষা করা হয়েছে। এটি পরীক্ষা করা খুব সহজ, এর আগে কোনও প্রতিস্থাপন না করেই die();কেবল functions.phpফাইলে এজাক্স ফাংশনে একটি কাজ করুন এবং অজ্যাক্সের মাধ্যমে অ্যাকশনটি কল করুন, যেমন:var testing = $.ajax( ... ); testing.fail(function(response) { console.log('Failed ' + response); }); testing.done(function(response) { console.log('Success ' + response); }); testing.always(function(response) { console.log('Ajax Request complete: ' + response); });
সলোমন ক্লসন

আপনি খেয়াল করবেন, ব্যর্থ দেখাবে, প্রতিক্রিয়া হবে 500 অভ্যন্তরীণ সার্ভার ত্রুটি।
সলোমন ক্লসন

2

সুতরাং আমি এটি কাজ করে। এটি jQuery ছিল না যদিও আমি এটির উন্নতি করেছি, এটি ছিল কল ব্যাক ফাংশন স্থাপন। আমি এটিকে মূল প্লাগইন ফাইলে স্থানান্তরিত করেছি এবং এটি কার্যকর হয়েছে।


4
আপনি কিভাবে এটি করতে পারেন তা দেখাতে পারেন?
ফ্রান্সিসকো

1
আমার এই একই সমস্যা হচ্ছে, আপনি কীভাবে এটি ঠিক করেছিলেন তা আপনি প্রদর্শন করতে পারেন?
জেরেমি


2

আমারও একই সমস্যা হয়েছে। এবং এটি সমাধান। উদাহরণস্বরূপ আপনাকে অবশ্যই "ক্রিয়া" পরিবর্তনশীল প্রেরণ করতে হবে:

var dataString = {lat: '55.56', lng: '25.35', action:'report_callback'};
 $.ajax({                            
        url: "http://domain.net/wp-admin/admin-ajax.php",  
        type: "POST",
        //some times you cant try this method for sending action variable
        //action : 'report_callback',
        data:dataString,        
        success: function(data){ 
            console.log(data);

            },
        error: function() {
            console.log("Error");            
        }
    });

কারণ ডাব্লুপি-অ্যাডমিন / অ্যাডমিন-এজ্যাক্স.এফপি ক্রিয়াকলাপের জন্য হ্যান্ডলার:

if ( empty( $_REQUEST['action'] ) ) {...}
Line 26

4
ওপি একটি পরামিতি প্রেরণ করেaction । যদিও এটি আপনার পক্ষে কাজ করেছে এটি এখানে সমস্যা ছিল না।
s_ha_dum

1

এই কোডটি কনসোলে চালানোর চেষ্টা করুন

jQuery.post(ajaxurl, {action:'cleanlinks_ajax_get_post_data'}, function(response) {
     console.log (response);
});

আমি আপনার জাভাস্ক্রিপ্ট কোড সম্পর্কে অনেক কিছুই ভুল দেখতে পাচ্ছি এবং এটি কারণ হতে পারে।


ঠিক আছে, এটি সম্পূর্ণরূপে বুঝতে পারি না এমন অনেকগুলি বিষয় নিয়ে আসছে। আমি কী বুঝতে পারি: রেডিস্টেট 4, স্ট্যাটাস 200, রেসপন্সেক্সটেক্সট "0"। এবং তারপরে এটি প্রতিক্রিয়া 0 এর সাথে আসে specific যদি নির্দিষ্ট কিছু থাকে তবে আমার এখানে সন্ধান করা উচিত? কোডটিতে যদি সমস্যা থাকে তবে দয়া করে এগুলিকে চিহ্নিত করুন এবং আমি সেগুলি সন্ধান করতে পারি, আমি এখনও jQuery শিখছি।
আপিনা

আপনার সাইট কি লাইভ চলছে?
ওমর আবিদ

না, এটি লোকালহোস্ট
আপিনা

বলা কঠিন. আপনি কি কনসোল.ইন.ফো (অজেক্সারল) চালানোর চেষ্টা করতে পারেন; এবং দেখুন কি দেয়?
ওমর আবিদ

1
আজাকুরলকে ' লোকালহোস্ট / ডাব্লুপি -অ্যাডমিন / অ্যাডমিন-আজাক্স.এফপি ' দিয়ে প্রতিস্থাপনের চেষ্টা করুন এবং দেখুন এটি কী দেয়
ওমর আবিদ ২

1

আমারও এই সমস্যা ছিল, এবং এটি আমার পিএইচপি ফাংশনটির returnপরিবর্তে আমি ব্যবহার echoকরছিলাম। এটি echoস্থির করে এটি পরিবর্তন করা ।

function doAjax() {
    $result = getPosts();
    echo json_encode($result, true);
    die();
}

0

আমার একই সমস্যা ছিল, এটি ঠিক করার জন্য আমি wp_die()আমার ফাংশন শেষে ঠিক একটি পরে ব্যবহার করেছি echo। আপনার স্ক্রিপ্টে আপনার ক্রিয়াটি পাস করতে ভুলবেন না।

নিশ্চিত হওয়ার জন্য, আপনার ফাংশনটির wp_ajax_noprivমতো ব্যবহার করতে হবে কিনা তা পরীক্ষা করে দেখুন wp_ajax


0

কেবলমাত্র রেফারেন্সের জন্য, এখানে যে কেউ গুগলিং করে "এজ্যাক্স রিকোয়েস্টি 0" ফিরে আসছে: মনে রাখবেন যে আপনি যখন অজ্যাক্স অ্যাকশনটি অবজেক্টের পদ্ধতিতে যুক্ত করেন তখন নিশ্চিত হন যে পদ্ধতিগুলি অ্যাক্সেস মডিফায়ার কিনা public

add_action( 'wp_ajax_my_action', [$object, 'my_method']);

add_actionএটি যদি আপনার পদ্ধতির বাইরে কল করতে না পারে তবে কেবল চুপ করে $object


0

আপনি যদি অজ্যাক্স ইউআরএল সেট করতে wp_localize_script () ফাংশন ব্যবহার না করেন তবে অ্যাডমিন আজাক্স 0 প্রদান করে I আমি মনে করি এটি ওয়ার্ডপ্রেস বাগ। এখানে একটি উদাহরণ দেওয়া হল:

    wp_enqueue_script( 'search_js', get_template_directory_uri() . '/js/search.js', array( 'jquery' ), null, true );    
    wp_localize_script( 'search_js', 'ajaxurl', admin_url( 'admin-ajax.php' ) );

জাভাস্ক্রিপ্ট ফাইল (সার্চ.জেএস):

    $('#search_input').autocomplete({
    source: function(request, response) {

        $.ajax({
            type: 'POST',
            dataType: 'json',
            url: ajaxurl,
            data: 'action=my_custom_action_search&search_criteria=' + request.term,
            success: function(data) {
                response(data);
            },
            error: function(errorThrown){
                console.log(errorThrown);
            } 
        });
    },
    minLength: 3
});

0
jQuery(document).ready(function(){
    jQuery('.cl_link_buttons').val('id').click(function() {
       $.ajax({
            type:'POST',
            url: ajaxurl,
            data: {
                action : 'ajax_filter',
                currentid : 'currentid'
            },
            success: function (result) {
                console.log(result);
                $result = $(result);
                        $result.fadeIn('7000');
                        $("#showresults").html(result);

            },
            error: function (xhr, status) {
                alert("Sorry, there was a problem!");
            },
            complete: function (xhr, status) {
                $('#showresults').slideDown('slow')
            }
            });
     });
}); 

// কোড ফাংশন পিএইচপি

<?php
    add_action( 'wp_ajax_nopriv_ajax_filter', 'ajax_filter' );
    add_action( 'wp_ajax_ajax_filter', 'ajax_filter' );
    function ajax_filter(){
        $date = isset($_POST['date']) ? $_POST['date'] : 0;
        echo $date;
        die();
    }
?>

শুধু পোস্টিং কোডটি ভাল নয়, আপনি কি দয়া করে ব্যাখ্যা করতে পারেন এই কোডের টুকরাটি কী করে?
ব্র্যাভোকেল

গুরুত্বপূর্ণ: $ তারিখ = isset ($ _ পোস্ট ['তারিখ'])? ; _POST ['তারিখ']: 0; এবং ফাংশন ডাই ();
এনগোচেং 22'18

0

যারা ত্রুটি 0 :) পান, ক্রিয়া => 'ক্রিয়া'

var data = { 'action': 'firmabilgilerikaydet', 'data': form_data };

$.post(ajaxurl, data, function(response) { alert(response); });

-1
তুমি চেষ্টা করো:

যোগ_অ্যাকশন ('init', 'লাই_ফর্ম_জ্যাক্স_ইনিত');


ফাংশন ly_for_ajax_init () {
    wp_register_script ('ly-form-ajax-स्क्रिप्ट', প্লাগইন_আরল ()। '/ লাইলি-ফর্ম / জেএস / লাই-স্ক্রিপ্ট.জেএস', অ্যারে ('jquery'));
    wp_enqueue_script ( 'Ly-ফর্ম-Ajax-লিপি');

    wp_localize_script ('লাই-ফর্ম-এজ্যাক্স-স্ক্রিপ্ট', 'লাই_ফর্ম_জ্যাক্স_অবজেক্ট', অ্যারে (
        'আজাকুরল' => অ্যাডমিন_আর্ল ('অ্যাডমিন-আজাক্স.এফপি'),
        'redirecturl' => home_url (),
        'লোডিংমেজেজ' => __ ('')
    ));
}
// অ্যাকশনটি হ'ল: যোগাযোগ_জ্যাক্স
যোগ_অ্যাকশন ('wp_ajax_contact_ajax', 'my_function');
যোগ_অ্যাকশন ('wp_ajax_nopriv_contact_ajax', 'my_function');

ফাংশন my_function () {
    ob_clean ();
    প্রতিধ্বনি "http://sanvatvungcao.com";
    wp_die ();
}

/ **
 * পৃষ্ঠায় সংক্ষিপ্ত কোড: [লাই-ফর্ম]
 * @ পরিমাপ প্রকারের ts atts
 * @ পরিমাপের ধরণ $ সামগ্রী
 * @ রিটার্ন স্ট্রিং
 * /
ফাংশন ly_for_shortcode (ts atts, $ সামগ্রী = "")
    প্রতিধ্বনি এইচটিএমএল_ফর্ম_কোড ();
}
add_shortcode ('লাই-ফর্ম', 'লাই_ফর্ম_শোর্টকোড');

// এইচটিএমএল ফর্ম প্রদর্শিত হবে,
html_form_code () function ফাংশন
    ; এইচটিএমএল = "";
    $ এইচটিএমএল। = '';
    $ এইচটিএমএল। = '';

    $ এইচটিএমএল। = '        

Họ đệm *

'; $ এইচটিএমএল। = '

টান *

'; $ এইচটিএমএল। = '

Ỉa Chỉ *

'; $ এইচটিএমএল। = '

ইমেল *

'; $ এইচটিএমএল। = '

Nội dung * ডিজি

'; $ এইচটিএমএল। = ''; $ এইচটিএমএল। = ''; $ এইচটিএমএল। = ''; $ এইচটিএমএল। = ''; প্রত্যাবর্তন $ এইচটিএমএল; } এবং এখানে জেএস (লাই-স্ক্রিপ্ট.জেএস): (ফাংশন ($) { document (দস্তাবেজ)। প্রস্তুত (ফাংশন () { // সম্পাদনা করুন AJAX ফর্ম জমা $ ('form.ly-form-ex')। এ ('জমা', ফাংশন (ঙ) { e.preventDefault (); $ ( '# লোড') এইচটিএমএল ( 'লোড হচ্ছে ...')। var ডেটা স্ট্রিং = {ক্রিয়া: 'কন্টাক্ট_জ্যাক্স'}; .ajax $ ({ প্রকার: "পোস্ট", ইউআরএল: লাই_ফর্ম_জ্যাক্স_জেক্ট.জ্যাক্সুরল, ডেটা: ডেটা স্ট্রিং, সাফল্য: ফাংশন (তথ্য) { $ ( '# লোড') HTML (তথ্য)। }, ত্রুটি: ফাংশন (ত্রুটি ট্রেন) { সতর্কতা (errorThrown); } }); }); }); // শেষ প্রস্তুত }) (jQuery);

আশা করি এটি আপনার পক্ষে সহায়ক, সেরা


আপনি ব্যাখ্যা করতে চাইবেন কেন :)
কায়সার

এখানে নীচের লাইনটি ob_clean () হতে পারে; ফাংশন। আপনি করতে এবং অভিজ্ঞতা অর্জন করতে পারেন
ল্য ভ্যান ভু

-2

একটি ifবিবৃতি যোগ করার চেষ্টা করুন :

function my_function(){
$id = $_POST['variation_id'];

    if(isset($_POST['variation_id'])) { 


//your coded function


die();
}



}// end function

1
কীভাবে সমস্যার সমাধান হবে? গৃহীত উত্তর এবং মূল কোডটি নোট করুন।
ফুসিয়া
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.