[WordPress] ワードプレスのデータベースは Ajax 経由で掲示される値を格納しないのですが。

スポンサーリンク

Question

ユーザーの電子メールを取得して、Ajax を使用してデータベースに格納しようとしていす。Ajax 要求の後、コンソールでのフォームの値を見ることができますが、データベースにデータを格納しません。他のすべては、Database.Any に格納されていることを除いて、正常に動作しています。

wp_enqueue_script( ‘Subsc’, trailingslashit ( THEME_URI ) . ‘js/Subsc.js’, array(‘jquery’ ), $theme->Version, true );
add_action(‘wp_enqueue_scripts’, ‘Subsc_script’);
// This is located in the functions.php file
function Subsc_script(){
if(!is_admin()){
wp_enqueue_script(‘Subsc’,trailingslashit ( THEME_URI ) . ‘js/Subsc.js’, array(‘jquery’ ), 1.0, true );
wp_localize_script(‘Subsc’, ‘Subsc’, array(‘ajaxurl’ => admin_url(‘admin-ajax.php’))); //create ajaxurl global for front-end AJAX call;
}
}
add_action( ‘wp_ajax_Subsc’, ‘processSubscribefm’ ); // ajax for logged in users
add_action( ‘wp_ajax_nopriv_Subsc’, ‘processSubscribefm’ ); // ajax for not logged in users
function processSubscribefm() {
global $wpdb;
checkErrs();
$subEmail = $_POST[‘email’];
$nSubEmail = $wpdb->real_escape_string($subEmail);
$wpdb->insert(‘wp_subscription_email’, array(‘email’ => $nsubEmail ), array( ‘%s’ ) );
//echo “done sending….”;
exit();
}
// This is the in the Subsc.js file
var formData = $(“#formsub”).serialize();
$.ajax({
url: Subsc.ajaxurl,
action: ‘ajaxurl’,
type: ‘POST’,
data: formData,
success:function(result){
alert(“Ajax Done-Checks”);
}
});
console.log(“Ajax done”);
return false;
}

答え

ここ

action: ‘ajaxurl’,

がコードのエラーです。

あなた

ajaxurl

add_action( ‘wp_ajax_ajaxurl’, ‘my_action_callback’ );

を追加してください。

function my_action_callback(){}

http://stackoverflow.com/questions/27394365/wordpress-database-not-inserting-values-posted-via-ajax

スポンサーリンク

Leave a Reply