AJAX插件未响应响应

时间:2013-01-09 作者:Eric Binnion

我创建了一个插件,可以通过ajax提交表单。下面是php函数。

add_action(\'wp_ajax_nopriv_audience_intel\', \'audience_intel_ajax\');
add_action(\'wp_ajax_audience_intel\', \'audience_intel_ajax\');
function audience_intel_ajax() {
    $likeit = $_POST[\'likeit\'];
    $response = $_POST[\'response\'];
    $postid = $_POST[\'postid\'];

    add_option( \'testing_form_like\', $likeit );
    add_option(\'testing_form_response\', $response);

    global $wpdb;
    $tablename = $wpdb->prefix . "intel";

    $newdata = array(
        \'radio\' => $likeit,
        \'feedback\' => $response,
        \'postid\' => $postid
    );    

        $wpdb->insert (
        $tablename,
        $newdata
    );

    $result = "<p>Finished successfully!</p>";
    // json_encode($result);
    echo $result;
}
这是我的剧本。

jQuery(document).ready(function($) {
$(\'.audience_intel_container .close\').click(function(){
    $(\'.audience_intel_container\').fadeOut(\'fast\', function(){

    });
});

$(\'.audience_intel_container button\').click(function(){
    console.log(\'clicked\');
    var formdata = $(\'#audience_intel_form\').serialize();
    $.ajax({
        type : "post",
        dataType : "html",
        url : audience_intel_js.ajaxurl,
        data : \'action=audience_intel&\'+formdata,
        success: function(response) {
            alert(response);
            $(\'.audience_intel_container\').html(response);
        }
    })
})   
});
表单数据已正确添加到数据库,但我无法在请求完成后显示输出消息。我在ajax函数中尝试了return、echo和echo json\\u编码。

我很欣赏你的见解。

2 个回复
SO网友:Eric Binnion

这是我正在使用的最后一个代码。感谢webaware指出我使用的数据类型不正确。

   jQuery(document).ready(function($) {
        $(\'.audience_intel_container .close\').click(function(){
        $(\'.audience_intel_container\').fadeOut(\'fast\', function(){

        });
});

$(\'.audience_intel_container button\').click(function(){
    console.log(\'clicked\');
    var formdata = $(\'#audience_intel_form\').serialize();
    $.ajax({
        type : "post",
        dataType : "html",
        url : audience_intel_js.ajaxurl,
        data : \'action=audience_intel&\'+formdata,
        success: function(response) {
            alert(response);
            $(\'.audience_intel_container\').html(response);
        }
    })
})   
});
php

add_action(\'wp_ajax_nopriv_audience_intel\', \'audience_intel_ajax\');
add_action(\'wp_ajax_audience_intel\', \'audience_intel_ajax\');
function audience_intel_ajax() {
$likeit = $_POST[\'likeit\'];
$response = $_POST[\'response\'];
$postid = $_POST[\'postid\'];

add_option( \'testing_form_like\', $likeit );
add_option(\'testing_form_response\', $response);

global $wpdb;
$tablename = $wpdb->prefix . "intel";

$newdata = array(
    \'radio\' => $likeit,
    \'feedback\' => $response,
    \'postid\' => $postid
);

$wpdb->insert (
    $tablename,
    $newdata
);

$result = "<p>Finished successfully!</p>";
// json_encode($result);
echo $result;
exit;
}

SO网友:Morne Zeelie

你最好使用美元。发布ajax。看看这里http://codex.wordpress.org/AJAX_in_Plugins 了解更多信息。

结束

相关推荐

Wassup中显示的ODD/wp-admin/admin-ajax.php条目

我有一个奇怪的问题,我不知道如何解决。自从我安装了一个流行的帖子插件(Wordpress popular Posts)以来,我一直在Wassup实时分析中看到一个奇怪的条目,该页面名为/wp admin/admin ajax。php一次又一次。在我安装插件之前,它会显示被点击的页面,但无论出于何种原因,该页面看起来都会被点击,我无法看到用户实际点击的页面。下面是我所说的一个例子:编辑:How do I get the correct page/post to be displayed instead of