Cum să transmiți un parametru de date către o funcție handler pentru acțiuni Ajax

12 feb. 2014, 23:05:37
Vizualizări: 63.8K
Voturi: 9

Am următorul cod JavaScript pentru procesarea unei cereri 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);
        });
  });

Și aceasta este funcția mea handler pentru ajax (sper că folosesc terminologia corectă):

add_action('wp_ajax_get_coke', 'get_coke_ajax');
function get_coke_ajax() {

   // trebuie să obțin another_par aici !!!!!!!

   die();
}

După cum puteți vedea, acțiunea este load_post ceea ce e în regulă, dar am nevoie să transmit parametrul another_par către funcția mea ajax astfel încât să pot atribui valoarea sa unei variabile și să o folosesc în scopurile mele.

0
Toate răspunsurile la întrebare 1
1
15

Când folosești jQuery.post(), datele data sunt trimise ca argumente obișnuite $_POST.

Deci acest JavaScript …

var data = {
    action: 'load_post',
    foo:    'bar'
};

… este disponibil în funcția ta de callback astfel:

$action = $_POST['action'];
$foo    = $_POST['foo']; // bar

Și când folosești jQuery.get(), datele sunt în $_GET. Poți folosi și $_REQUEST care returnează atât datele GET, cât și POST (și COOKIE). Dar ar trebui să ceri întotdeauna resursa specifică pentru a evita injecții din surse pe care nu le așteptai, cum ar fi un cookie.

12 feb. 2014 23:32:50
Comentarii

Scuze, WordPress-ul meu scapă de intrare atunci când este json_encoded. Unele slash-uri sunt adăugate în fața caracterelor ".

https://wpartisan.me/tutorials/wordpress-auto-adds-slashes-post-get-request-cookie

Jakob Alexander Eichler Jakob Alexander Eichler
21 iul. 2018 03:41:56