我不能从带有ajax的wordpress中的js到php获取$ _POST

时间:2018-01-27 05:46:30

标签: javascript php ajax wordpress

我的js文件在这里。

      function sayHelloWorld() {
window.alert('hey');
       $.ajax({
         url: 'admin-ajax.php',//I wrote absolute path here.
         type:'POST',
         data: { 
                'action': "mon_action",
                'newFormRecherche': 'newFormRecherche'
            },
        timeout:10000,
        }).done(function(data) {
            window.alert(data);
        }).fail(function(XMLHttpRequest, textStatus, errorThrown) {
            window.alert("error");
      });

和functions.php就在这里。

add_action( 'wp_ajax_mon_action', 'mon_action' );
add_action( 'wp_ajax_nopriv_mon_action', 'mon_action' );

function mon_action() {

    if (isset($_POST["newFormRecherche"])) {
      $field1='hey';
        exit();
    }else{
      $field1='heye';
        exit();
    }
    echo 'echo';
    die();
}

此过程成功,我得到window.alert(数据),但数据为空。你能告诉我为什么这不包括回声'? (这个脚本是我正在尝试的东西。)

2 个答案:

答案 0 :(得分:7)

你需要像这样回复一些关于php函数的数据

if (isset($_POST["newFormRecherche"])) {
      $field1='hey';
      echo 'if';
        exit();
    }else{
      $field1='heye';
echo 'else';
        exit();
    }
    echo 'echo';
    die();

答案 1 :(得分:1)

没有什么是回声而且页面出来是空的,因为你在echo 'echo';之前退出了,你的代码应该是

add_action( 'wp_ajax_mon_action', 'mon_action' );
add_action( 'wp_ajax_nopriv_mon_action', 'mon_action' );

function mon_action() {

    if (isset($_POST["newFormRecherche"])) {
      $field1='hey';
    }else{
      $field1='heye';
    }
    echo 'echo';
    die();
}