簡體   English   中英

wordpress ajax不更新數據庫

[英]wordpress ajax not updating database

希望您能指導我,我正在嘗試運行本教程: http : //www.inkthemes.com/how-to-use-ajax-in-wordpress-for-data-insertion/#

這是我的Wordpress插件Javascript:

jQuery(document).ready(function(){
    jQuery("#submit").click(function(){
        console.log("click caught");//this bit works
        var name = jQuery("#dname").val();
        jQuery.ajax({
            type: 'POST',   
            data: {"action": "post_word_count", "dname":name},
            success: function(data){ 
                alert(data);//this alert appears full of html
            }
        });
    });
});

這是插件php:

function show_form(){

echo "<form>";
echo "<label>Name</label>";
echo "<input type='text' id='dname' name='dname' value=''/><br/>";
echo "<input type='button' id='submit' name='submit' value='Submit'/>";
echo "</form>";
}
add_action('the_content', 'show_form');



function post_word_count(){

$name = $_POST['dname'];
global $wpdb;
$wpdb->insert(
    'bio',
    array(
        'bio_surname' => $name
    ),
    array(
        '%s'
    )
);

die();
return true;
}
//
add_action('wp_ajax_post_word_count', 'post_word_count'); // Call when user logged in
add_action('wp_ajax_nopriv_post_word_count', 'post_word_count'); // Call when user in not logged in
?>

因此,我在調試器中發現控制台POST數據是在表單輸入中提交的“ dname”。 但是,數據庫表“ bio”沒有被更新。 發生的一切是,警報彈出,提示我正在運行的網站的所有HTML都充滿了。 即。 控制台調試器中的RESPONSE是大量HTML文本。

所以,我不明白為什么data =我的網站html以及為什么表“ bio”沒有更新。

在插件php文件中,首先添加您的Java腳本文件,如下所示

wp_enqueue_script('ajax-script-xyz','***javascript file path***', array('jquery')); 
wp_localize_script('ajax-script-xyz', 'ajax_object',
                        array(
                            'ajax_url' => admin_url('admin-ajax.php'),
                            )
                        );

插件Javascript:添加admin-ajax.php文件網址

jQuery(document).ready(function(){
    jQuery("#submit").click(function(){
        console.log("click caught");//this bit works
        var name = jQuery("#dname").val();
        jQuery.ajax(ajax_object.ajax_url, {//**add admin-ajax.php fill url **
            type: 'POST',   
            data: {"action": "post_word_count", "dname":name},
            success: function(data){ 
                alert(data);//this alert appears full of html
            }
        });
    });
});

對於站立狀態下的擊球手,請檢查此鏈接http://codex.wordpress.org/AJAX_in_Plugins

您尚未在ajax中定義URL:

jQuery(document).ready(function(){
    jQuery("#submit").click(function(){
        var name = jQuery("#dname").val();
        jQuery.ajax({
            type: 'POST',   // Adding Post method
             url: ajaxurl, // Including ajax file
             data: {"action": "post_word_count", "dname":name}, // Sending data dname to post_word_count function.
             success: function(data){ // Show returned data using the function.
                 alert(data);
        });
    });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM