Admin Ajax sta restituendo 0
-
-
Hai verificato che ajaxurl siaimpostato correttamente?Have you verified that ajaxurl is set properly?
- 1
- 2013-04-27
- Andrew Bartel
-
Latua console delbrowsermostraerrori?Se sì,quali sono?Does your browser console show any errors? If so, what are they?
- 0
- 2013-04-27
- s_ha_dum
-
`jQuery ('. cl_link_buttons'). val ('id'). click (function ()` sembra strano.`jQuery('.cl_link_buttons').val('id').click(function()` looks odd.
- 2
- 2013-04-27
- fuxia
-
Andrew,sì,credo che sia corretto,l'URL della richiestain Chrome Inspectormostra domain/wp-admin/admin-ajax.phpAndrew, yes I believe it is correct, the request url in Chrome Inspector is showing domain/wp-admin/admin-ajax.php
- 0
- 2013-04-27
- Apina
-
@s_ha_dum Nessunerrore visualizzato@s_ha_dum No errors showing
- 0
- 2013-04-27
- Apina
-
@toscho Forse sembra strano,era l'unicomodoin cuipotevopensare di ottenere l'ID deglielementi al clic,e fail lavoro,il codicemostra anche che ha quei dati,ancora una voltailproblema è ottenere una risposta dalphp.@toscho Perhaps it does look odd, it was the only way I could think of getting the elements ID on click, and it does do the job, the code also shows it has that data, again issue is getting a response from the php.
- 0
- 2013-04-27
- Apina
-
Vedere anche [comeeseguireil debug di AJAX con HTTP] (http://wordpress.stackexchange.com/a/96556/73).See also [how to debug AJAX with HTTP](http://wordpress.stackexchange.com/a/96556/73).
- 0
- 2013-04-27
- fuxia
-
Non ènecessario restituirefalse.Se usijQuery,usainvece http://api.jquery.com/event.preventdefault/.There is no need to `return false`. If using jQuery, use http://api.jquery.com/event.preventdefault/ instead.
- 0
- 2015-10-26
- Solomon Closson
-
14 risposta
- voti
-
- 2013-04-28
Quindi ho capito.NonerajQueryin quantotale anche se l'homigliorato,erailposizionamento dellafunzione di richiamata.L'ho spostatonelfileprincipale delplugine hafunzionato.
So I worked it out. It was not the jQuery as such though I have improved that, it was the placement of the call back function. I moved it over to the main plugin file and it worked.
-
puoimostrare come haifatto?can you show how did you do it ?
- 4
- 2014-01-27
- Francisco Corrales Morales
-
Sto riscontrando lo stessoproblema,potrestimostrare come l'hai risolto?I am having this same issue, could you show how you fixed this?
- 1
- 2014-03-08
- Jeremy
-
Un'altra risposta è qui: http://wordpress.stackexchange.com/a/131397 @ JeremyAnother answer is here: http://wordpress.stackexchange.com/a/131397 @Jeremy
- 0
- 2014-03-26
- Francisco Corrales Morales
-
- 2013-07-27
Una risposta
0
significa che l'azionenon èimpostata (nei dati ajax) o che lafunzione di callback dell'azionenonpuòesseretrovata.A
0
response means either that the action is not set (in the ajax data) or that the action's callback function cannot be found.-
Sì,questa è la risposta corretta.Tutto ciò chefa aggiungere die () allafine èterminare lo script.Quella risposta ètecnicamente corretta se vedi 0 aggiunto alla FINE dell'output,tuttavia setutto ciò che ottieni è "0",significa chenon è stato restituitonullae hai unerrore come descrittoin questa risposta.Yeah, this is the correct answer. All adding die() to the end does, is terminate the script. That answer is technically correct if you're seeing 0 appended to the END of the output, however if all you get is '0', then it means nothing was returned, and you have an error as described in this answer.
- 2
- 2014-05-11
- Hybrid Web Dev
-
O semplicementenon hai restituitonulla dipropositonelphp chegestisce la richiesta ajax.Assicurati di riecheggiare qualcosa,altrimenti usa ".always"per catturarlo.Or you just returned nothing on purpose in the php that handles the ajax request. Be sure to echo something out, otherwise, use `.always` to capture it.
- 0
- 2015-10-26
- Solomon Closson
-
- 2014-01-27
Quello che devifare è aggiungere
die();
allafine dellatuafunzione.Vediilmotivoe altro qui: http://codex.wordpress.org/AJAX_in_Plugins
Note:
- Dovresti
echo
qualcosaprima dieseguiredie
.Ciòimpediràerrori del servere aiuterà duranteil debug.
What you have to do is add
die();
at the end of your function.See the reason and more here: http://codex.wordpress.org/AJAX_in_Plugins
Notes:
- You should
echo
something before executingdie
. This will prevent server errors, and will help when debugging.
-
Questa è la risposta alproblema WP AJAX 0.This is the answer to the WP AJAX 0 problem.
- 10
- 2014-03-26
- Ben Racicot
-
In realtà,se aggiungi semplicemente `die ()` senzaecheggiare qualcosa,questoti darà anche unerroreinterno del server 500e restituirà `0`per` wp-admin/admin-ajax.php`.Dovresti sempre ripetere qualcosa,anche se stai soloimpostando valorie non ènecessario restituirenulla.Altrimenti,senonechinullae `die ()`,devi usare `.always ()`per catturarlo,poichénon saràin `.done ()`,saràin `.fail ()`perchémuore senzanulla=500 Errore.Actually, if you just add `die()` without echoing something out, this will also give you a 500 Internal Server Error, and return `0` for `wp-admin/admin-ajax.php`. You should always echo out something, even if you are just setting values and nothing is needed to be returned. Otherwise, if you echo nothing and `die()`, you have to use `.always()` to capture it, cause it will not be in `.done()`, it will be in `.fail()` because it dies without anything = 500 Error.
- 0
- 2015-10-26
- Solomon Closson
-
hai dei link o del codicefunzionante,quindipossiamo dare un'occhiata?@SolomonClossondo you have some links, or working code, so we can take a look ? @SolomonClosson
- 0
- 2015-10-26
- Francisco Corrales Morales
-
Tutte lemie risposte sono statetestatein ambienti live.Èmolto semplicetestarlo,bastafare un `die ();`nellafunzione ajaxnelfile `functions.php` senzaecheggiarenullaprima di questo,e chiamare l'azionetramite ajax,adesempio:` vartesting=$.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);}); `All my answers have been tested in live environments. It's very simple to test this, just do a `die();` in the ajax function in the `functions.php` file without echoing out anything prior to this, and call the action via ajax, e.g.: `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); });`
- 0
- 2015-10-26
- Solomon Closson
-
Noterai che verrà visualizzato Non riuscito,la risposta sarà unerroreinterno del server 500.You will notice, Failed will show up, the response will be a 500 Internal Server Error.
- 0
- 2015-10-26
- Solomon Closson
-
Quindi aggiungere unecho allafunzione PHP appenaprima di `die ();`,la risposta saràil risultato dell'eco.Than add an echo to the PHP function just before you `die();`, the response will than be the echo'd result.
- 0
- 2015-10-26
- Solomon Closson
-
L'hotestato con `dataType`impostato su` HTML`,non sono sicuro se altritipi di dati restituiscono qualcosa di diverso,o cosa succede quandonon èimpostato,poichétenterà difare un'ipotesiplausibile sultipo di dati.IMO,è semplicementemeglioprodurre sempre qualcosa,anche se è una stringa che dice "successo" o "fallimento".I tested this with `dataType` set to `HTML`, not sure if other datatypes return something different tho, or what happens when it is not set, since it will attempt to take an educated guess at the data type. IMO, it's just best to output something always, even if it's a string that says 'success' or 'failure'.
- 0
- 2015-10-26
- Solomon Closson
-
- 2014-05-11
Ho lo stessoproblema.E l'ho risolto.Deviinviare la variabile "azione" comenell'esempio:
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"); } });
Perchéin wp-admin/admin-ajax.php èilgestoreper la variabile di azione:
if ( empty( $_REQUEST['action'] ) ) {...} Line 26
I got same problem. And solved it. You must send "action" variable like in example:
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"); } });
Because in wp-admin/admin-ajax.php is handler for action variable:
if ( empty( $_REQUEST['action'] ) ) {...} Line 26
-
L'OP ___does___invia unparametro "action".Anche se questopotrebbe averfunzionatoperte,nonerailproblema qui.The OP ___does___ send an `action` parameter. While this may have worked for you it was not the problem here.
- 4
- 2014-05-11
- s_ha_dum
-
- 2016-03-29
Anch'io avevo questoproblema,ederailfatto che stavo usando
return
invece diecho
nellamiafunzione PHP.Modificandoloinecho
è stato risolto.function doAjax() { $result = getPosts(); echo json_encode($result, true); die(); }
I had this problem too, and it was the fact that I was using
return
instead ofecho
in my PHP function. Changing it toecho
fixed it.function doAjax() { $result = getPosts(); echo json_encode($result, true); die(); }
-
- 2013-04-27
Prova aeseguire questo codice sulla console
jQuery.post(ajaxurl, {action:'cleanlinks_ajax_get_post_data'}, function(response) { console.log (response); });
Vedomolte cose sbagliateneltuo codice JavaScripte questopotrebbeessereilmotivo.
Try running this code on the console
jQuery.post(ajaxurl, {action:'cleanlinks_ajax_get_post_data'}, function(response) { console.log (response); });
I can see many things wrong about your JavaScript code and that might be the reason.
-
Beh,sta venendofuorimolte cose chenon capisco completamente.Cosa capisco: ReadyState 4,stato 200,responseText "0". Epoi arriva con la risposta 0. Se c'è qualcosain particolare che dovrei cercare qui? Se ci sonoproblemi conil codice,segnalalie possoesaminarli,sto ancoraimparandojQuery.Well it is coming up with a lot of things I dont fully understand. What I do understand: ReadyState 4, status 200, responseText "0". And then it comes up with the response 0. If there something in specific I should be looking for here? If there are issues with the code, please point them out and I can look into them, I am still learning jQuery.
- 0
- 2013-04-27
- Apina
-
iltuo sito è attivo dal vivo?do you have your site running live?
- 0
- 2013-04-27
- Omar Abid
-
No,è localhostNo, it's localhost
- 0
- 2013-04-27
- Apina
-
Difficile da dire.Potrestiprovare aeseguire console.info (ajaxurl);e vedi cosa dà?Hard to tell. Could you try running console.info(ajaxurl); and see what it gives?
- 0
- 2013-04-27
- Omar Abid
-
/wp-admin/admin-ajax.php è la risposta modificare -- /wp-admin/admin-ajax.php non definito/wp-admin/admin-ajax.php is the response edit -- /wp-admin/admin-ajax.php undefined
- 0
- 2013-04-27
- Apina
-
prova a sostituire ajaxurl con "http://localhost/wp-admin/admin-ajax.php"e guarda cosa offretry replacing ajaxurl with 'http://localhost/wp-admin/admin-ajax.php' and see what it gives
- 1
- 2013-04-27
- Omar Abid
-
Non è una soluzione diretta,ma questa risposta è qualcosa che si dovrebbe assolutamente verificarein modoincrociatopertrovare una soluzione all'OPNot a direct solution, but this answer is something one should definitely cross-check for a solution to the OP
- 0
- 2016-01-07
- Nirav Zaveri
-
- 2016-07-18
Ho avuto lo stessoproblema,per risolverlo ho usato
wp_die()
allafine dellamiafunzione subito dopo unecho
.Non dimenticare ditrasmettere latua azione altuo script.Per sicurezza,controlla se latuafunzione deve utilizzare
wp_ajax_nopriv
comewp_ajax
.I had the same problem, to fix it I used
wp_die()
at the end of my function just after anecho
. Don't forget to pass your action on your script.To be sure, check if your function has to use
wp_ajax_nopriv
likewp_ajax
. -
- 2017-04-27
Soloper riferimento,per chiunque acceda a Google "la richiesta ajax restituisce 0": Ricorda quando aggiungi un'azione ajax almetodo dell'oggettoper assicurarti cheilmodificatore di accesso aimetodi sia
public
.add_action( 'wp_ajax_my_action', [$object, 'my_method']);
add_action
silenzia semplicemente senonpuò chiamareiltuometodo al difuori di$object
.Just for reference, for anyone who get here googling "ajax request is returning 0": Remember when you add ajax action to object's method to be sure methods access modifier is
public
.add_action( 'wp_ajax_my_action', [$object, 'my_method']);
add_action
just silences if it can't call your method outside of$object
. -
- 2017-10-17
Senon usi lafunzione wp_localize_script ()perimpostare l'URL di ajax,admin ajax restituisce 0. Penso che sia unbug di Wordpress.Ecco unesempio:
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' ) );
Ilfilejavascript (search.js):
$('#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 });
If you don't use wp_localize_script() function to set ajax url, admin ajax returns 0. I think it's Wordpress bug. Here's is an example :
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' ) );
The javascript file (search.js) :
$('#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 });
-
- 2018-03-22
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') } }); }); });
//codicefunzionephp
<?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(); } ?>
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') } }); }); });
//code function php
<?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(); } ?>
-
Il solopostareil codicenon vabene,puoi spiegare cosafa questopezzo di codice?Just posting code is not good, can you please explain what this piece of code does?
- 0
- 2018-03-22
- bravokeyl
-
importante: $ date=isset ($ _ POST ['date'])?$ _POST ["data"]: 0; E lafunzione die ();important: $date = isset($_POST['date']) ? $_POST['date'] : 0; And function die();
- 0
- 2018-03-22
- Ngocheng
-
- 2019-11-10
Coloro che ottengono l'errore 0 :),action=> 'action'
var data = { 'action': 'firmabilgilerikaydet', 'data': form_data }; $.post(ajaxurl, data, function(response) { alert(response); });
Those who get error 0 :), action => 'action'
var data = { 'action': 'firmabilgilerikaydet', 'data': form_data }; $.post(ajaxurl, data, function(response) { alert(response); });
-
- 2020-06-02
Se stai usando localhoste iltuo codice lato serverphp èin unfile diplugin,prima accedi alla dashboard di amministrazionee aggiorna lapagina delplugin.In secondo luogo,controlla seilplugin è attivato.Quindi vai alfrontend,aggiornae prova ainviare dinuovo.
If you are using localhost and your php server side code is in a plugin file first login to admin dashboard and refresh the plugin page. Secondly, check if the plugin is activated. Then go to frontend and refresh and try sending again.
-
- 2017-03-22
SI PROVA: add_action ('init','ly_form_ajax_init'); funzione ly_form_ajax_init () { wp_register_script ('ly-form-ajax-script',plugins_url (). '/ly-form/js/ly-script.js',array ('jquery')); wp_enqueue_script ('ly-form-ajax-script'); wp_localize_script ('ly-form-ajax-script','ly_form_ajax_object',array ( 'ajaxurl'=> admin_url ('admin-ajax.php'), 'redirecturl'=> home_url (), 'loadingmessage'=> __ ('') )); } //L'azione è: contact_ajax add_action ('wp_ajax_contact_ajax','my_function'); add_action ('wp_ajax_nopriv_contact_ajax','my_function'); funzionemia_funzione () { ob_clean (); echo "http://sanvatvungcao.com"; wp_die (); } /** * Codicebrevein unapagina come questa: [ly-form] * @param digitare $ atts * @paramtype $ content * @return stringa */ funzione ly_form_shortcode ($ atts,$ content="") { echo html_form_code (); } add_shortcode ('ly-form','ly_form_shortcode'); //HTML Formmostrerà, function html_form_code () { $ html=""; $ html.=''; $ html.=''; $ html.='
Họ đệm *
'; $ html.='Tên *
'; $ html.='Địa chỉ *
'; $ html.='Email *
'; $ html.='Nội dung * dg
'; $ html.=''; $ html.=''; $ html.=''; $ html.=''; return $ html; } E QUIjs (ly-script.js): (funzione ($) { $ (documento) .ready (function () { //Eseguire l'invio delmodulo AJAX $ ('form.ly-form-ex'). on ('submit',function (e) { e.preventDefault (); $ ('# caricamento'). html ('caricamento ...'); var dataString={action: 'contact_ajax'}; $ .ajax ({ tipo: "POST", url: ly_form_ajax_object.ajaxurl, data: dataString, successo:funzione (dati) { $ ('# caricamento'). html (dati); }, errore:funzione (errorThrown) { alert (errorThrown); } }); }); });//fine pronto }) (jQuery);Spero cheti sia utile, Ilmigliore
YOU TRY: add_action('init', 'ly_form_ajax_init'); function ly_form_ajax_init() { wp_register_script('ly-form-ajax-script', plugins_url().'/ly-form/js/ly-script.js' , array('jquery')); wp_enqueue_script('ly-form-ajax-script'); wp_localize_script('ly-form-ajax-script', 'ly_form_ajax_object', array( 'ajaxurl' => admin_url('admin-ajax.php'), 'redirecturl' => home_url(), 'loadingmessage' => __('') )); } // Action is: contact_ajax add_action( 'wp_ajax_contact_ajax', 'my_function' ); add_action( 'wp_ajax_nopriv_contact_ajax', 'my_function' ); function my_function(){ ob_clean(); echo "http://sanvatvungcao.com"; wp_die(); } /** * Short code in page like this: [ly-form] * @param type $atts * @param type $content * @return string */ function ly_form_shortcode($atts, $content = "") { echo html_form_code(); } add_shortcode('ly-form', 'ly_form_shortcode'); //HTML Form will show, function html_form_code() { $html = ""; $html.= ''; $html.= ''; $html.= '
Họ đệm *
'; $html.= 'Tên *
'; $html.= 'Địa chỉ *
'; $html.= 'Email *
'; $html.= 'Nội dung * dg
'; $html.= ' '; $html.= ''; $html.= ''; $html.= ''; return $html; } AND HERE js (ly-script.js): ( function( $ ) { $(document).ready(function () { // Perform AJAX form submit $('form.ly-form-ex').on('submit', function(e){ e.preventDefault(); $('#loading').html('loading...'); var dataString = {action:'contact_ajax'}; $.ajax({ type: "POST", url: ly_form_ajax_object.ajaxurl, data: dataString, success: function (data) { $('#loading').html(data); }, error: function (errorThrown) { alert(errorThrown); } }); }); }); // end ready } )( jQuery );Hope it is helpful for you, Best
-
- 2013-09-23
Prova ad aggiungere un'istruzione
if
:function my_function(){ $id = $_POST['variation_id']; if(isset($_POST['variation_id'])) { //your coded function die(); } }// end function
Try adding an
if
statement:function my_function(){ $id = $_POST['variation_id']; if(isset($_POST['variation_id'])) { //your coded function die(); } }// end function
-
Come risolverebbeilproblema?Annotare la risposta accettatae il codice originale.How would that solve the problem? Note the accepted answer and the original code.
- 1
- 2013-09-23
- fuxia
Sono relativamentenuovo ajQuerye AJAXin particolare. Ho unpiccoloproblema conil valore di ritorno semprepari a 0,anche sepenso che questo siaeffettivamenteilmessaggio di successoe non restituiscenulla.
Ho setacciato Google-versee ho lafunzione die () sul callback PHPe credo che le add_action siano corrette.
Sto lavorando su un host locale,anche se dubito che ciòinfluisca su diessoe questo ètuttonell'amministratore,nonnelfront-end. Ho anche verificato chejs sia accodatoe localizzato.
Ricevo unmessaggio di 200 OKnell'area sviluppatori di Chrome.
Ho anchetestato l'AJAX dibase da http://codex.wordpress.org/AJAX_in_Plugins e ha anche restituito 0,il chemi fa chiedere se sia qualcosa di diverso dal codice descritto di seguito.
In questomomento sto solo cercando difargliinviare qualcosa dinuovo ajQuery. Qualsiasi aiuto sarebbe apprezzato.
IljQuery
Il PHP