Come passare un parametro dati alla funzione handler dell'azione ajax
Ho il seguente codice js per elaborare una richiesta ajax:
$('#someelement').click(function() {
var cokeValue = 'coke';
var data = {
action: 'load_post',
another_par: someVar
};
jQuery.post(ajax_object.ajax_url, data, function(response) {
alert(response);
});
});
E questa è la mia funzione handler ajax (spero che la mia terminologia sia corretta):
add_action('wp_ajax_get_coke', 'get_coke_ajax');
function get_coke_ajax() {
// necessario ottenere another_par qui !!!!!!!
die();
}
Come potete vedere, l'azione è load_post
che va bene, ma ho bisogno di passare il parametro another_par
alla mia funzione ajax in modo da poter assegnare il suo valore a una variabile e utilizzarlo per i miei scopi.

Quando utilizzi jQuery.post()
, i data
vengono inviati come normali argomenti $_POST
.
Quindi questo JavaScript …
var data = {
action: 'load_post',
foo: 'bar'
};
… è disponibile nella tua funzione di callback tramite:
$action = $_POST['action'];
$foo = $_POST['foo']; // bar
E quando usi jQuery.get()
, i dati sono in $_GET
. Puoi anche usare $_REQUEST
che restituisce sia i dati GET
che POST
(e COOKIE
). Ma dovresti sempre richiedere la risorsa specifica per evitare iniezioni da fonti che non ti aspetti, come un cookie.

Scusa, il mio WordPress esegue l'escape dell'input quando viene json_encoded. Vengono aggiunti alcuni backslash davanti ai caratteri ".
https://wpartisan.me/tutorials/wordpress-auto-adds-slashes-post-get-request-cookie
