La chiamata Ajax restituisce sempre 0
-
-
Haiprovato a [debug] (http://wordpress.stackexchange.com/a/96556/73)iltuo codice?Usa anche `admin_url ('admin-ajax.php')`per ottenere l'URL AJAX,non qualche URLinventato.Have you tried to [debug](http://wordpress.stackexchange.com/a/96556/73) your code? Also use `admin_url( 'admin-ajax.php' )` to get the AJAX URL, not some made-up URL.
- 0
- 2013-08-30
- fuxia
-
5 risposta
- voti
-
- 2013-08-30
Potrestiinserire l'azione (ajaxConversion)nei tuoi datie controllare?
jQuery.ajax({ type:"POST", url: ajaxurl, data: { action: "ajaxConversion", amount: amountToConvert }, success:function(data){ alert(data); }, error: function(errorThrown){ alert(errorThrown); } });
Could you place the action (ajaxConversion) in your Data and check?
jQuery.ajax({ type:"POST", url: ajaxurl, data: { action: "ajaxConversion", amount: amountToConvert }, success:function(data){ alert(data); }, error: function(errorThrown){ alert(errorThrown); } });
-
In qualchemodo sto ancora aggiungendo uno 0 almio contenuto.This is still appending a 0 to my content somehow.
- 0
- 2014-03-26
- Ben Racicot
-
@ BenRacicot:puoi controllare se haiistruzioni che restituiscono comeecho,die (),ecc. Neltuo codice PHP?@BenRacicot : Can you check if you have any statements that does output like echo, die(), etc in your PHP code?
- 1
- 2014-03-27
- Jayawi Perera
-
Hey Jay,risulta l'aggiunta di die ();almiofunc ajax lo ha risolto!Hey Jay, Turns out adding die(); to my ajax func fixed it!
- 2
- 2014-03-27
- Ben Racicot
-
- 2015-07-08
utilizzando
wp_die();
allafine dellafunzione AJAX ha risoltoilproblemaperme.adesempio
add_action( 'wp_ajax_my_ajax_function', 'my_ajax_function' ); function my_ajax_function(){ echo json_encode($myvar); wp_die(); }
using
wp_die();
at the end of AJAX function fixed the issue for me.e.g
add_action( 'wp_ajax_my_ajax_function', 'my_ajax_function' ); function my_ajax_function(){ echo json_encode($myvar); wp_die(); }
-
grazie ...non soperchéma usarejust die ()non hafunzionato.thanks... dont know why but using just die() didnt work.
- 0
- 2015-07-12
- Sagive SEO
-
- 2016-02-07
Perme iltruccoera aggiungere l'azione
wp_ajax_nopriv
.Hotestato lo script su unbrowser quando hoeffettuato l'accesso all'amministratore di WP,quindi hoprovato lo stesso scriptin Chromee mi sono reso conto che lo scriptnonfunziona.Dopo averinseritowp_ajax_nopriv
,tutto hainiziato afunzionare.:)add_action( 'wp_ajax_nopriv_erase_uploaded_images', 'erase_uploaded_images' ); add_action( 'wp_ajax_erase_uploaded_images', 'erase_uploaded_images' ); function erase_uploaded_images() { $attach_id = filter_input( INPUT_POST, 'attach_id' ); wp_delete_attachment( $attach_id ); if ( isset( $_SESSION['uploaded_images'] ) ) { $array_attachments = $_SESSION['uploaded_images']; if ( ( $key = array_search( $attach_id, $array_attachments ) ) !== false ) { unset( $array_attachments[$key] ); } $_SESSION['uploaded_images'] = $array_attachments; } wp_die(); }
For me the trick was to add
wp_ajax_nopriv
action. I tested the script on one browser when I was logged in WP admin, and then I tried same script in Chrome and realized that the script doesn't work. After I putwp_ajax_nopriv
, everything started to work. :)add_action( 'wp_ajax_nopriv_erase_uploaded_images', 'erase_uploaded_images' ); add_action( 'wp_ajax_erase_uploaded_images', 'erase_uploaded_images' ); function erase_uploaded_images() { $attach_id = filter_input( INPUT_POST, 'attach_id' ); wp_delete_attachment( $attach_id ); if ( isset( $_SESSION['uploaded_images'] ) ) { $array_attachments = $_SESSION['uploaded_images']; if ( ( $key = array_search( $attach_id, $array_attachments ) ) !== false ) { unset( $array_attachments[$key] ); } $_SESSION['uploaded_images'] = $array_attachments; } wp_die(); }
-
Questo,amicomio,mi ha risparmiato 2 ore difrustrazioni.Un'altra lezione daimparare quando distribuisci latua applicazionein un altro ambiente T_TThis, my friend, has saved me 2 hours of frustrating. Another lesson to learn when deploy your application to another environment T_T
- 0
- 2017-06-01
- Tree Nguyen
-
Questo èmolto vero ... se haieffettuato l'accesso ad admin,lafunzione _noprivnon viene chiamataThis is very true...if you're logged in to admin then _nopriv function is not called
- 0
- 2017-11-07
- Michal Holub
-
- 2017-02-18
Suggerirei di utilizzare wp_send_json_success () e wp_send_json_error () sul lato server. Non devipreoccuparti di die ()ecce la variabile "status" vieneinviata automaticamente,èmoltopiùpulitain questomodo. Adesempio
function ajaxConversion(){ // ... wp_send_json_success(array( 'amount' => $amount )); }
Risulteràin qualcosa delgenere:
{ "success":true, "data":{"amount":125} }
Quindipuoiestrarrefacilmentei valorinellatua chiamata ajax:
jQuery.ajax({ type : 'post', data : { action: 'ajaxConversion', //nonce : ajax.nonce }, dataType : 'json', url : ajax.ajaxurl, success : function(data){ if(data.success) { alert(data.amount); } else { alert(data.data.message); } } });
Un'altra cosa comunein cuimi sonoimbattuto sonoglierrori dibattituranelnome dell'azione. Dovrebberoessere wp_ajax_nopriv_ {action} o wp_ajax_ {action} dopo avereffettuato l'accesso. Adesempio,wp-ajax_nopriv,è uno che hofattopiù voltein passato.
I would recommend using wp_send_json_success() and wp_send_json_error() on server side. You don't need to worry about die() etc and the "status" variable is sent automatically, it's much cleaner this way. For example
function ajaxConversion(){ // ... wp_send_json_success(array( 'amount' => $amount )); }
Will result in something like this:
{ "success":true, "data":{"amount":125} }
So then you can do easily extract the values in your ajax call:
jQuery.ajax({ type : 'post', data : { action: 'ajaxConversion', //nonce : ajax.nonce }, dataType : 'json', url : ajax.ajaxurl, success : function(data){ if(data.success) { alert(data.amount); } else { alert(data.data.message); } } });
Another common thing i've ran into are typos in the action name. They should be wp_ajax_nopriv_{action} or wp_ajax_{action} when logged in. For example, wp-ajax_nopriv, is one I've done several times in the past.
-
questa qui dovrebbeessere la risposta correttae accettata.sorprendente!this right here should be the correct and accepted answer. amazing!
- 0
- 2020-02-11
- eballeste
-
- 2016-03-29
Perme erailfatto che stavo usando
return
invece diecho
nellamiafunzione PHP.Modificandoloinecho
è stato risolto.function doAjax() { $result = getPosts(); echo json_encode($result, true); die(); }
For me 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(); }
Ho unproblema con AJAX che restituisce sempre 0!
Hofattotutto damanualee non riesco a capire cosa c'è chenon va?Perfavore aiutatemi !!
Ecco lamia chiamata Ajax:
E lafunzionein functions.php è: