WordPress を使用していますが、送信された Ajax からのシリアル化されたデータをどう処理すればよいかわかりません。このサイトでparse_str
必要なものを読みましたが、それを利用する方法がわかりません。
フォーム送信用のjQueryは次のとおりです
jQuery( document ).ready( function( $ ) {
$( '#log_data' ).submit( function( event ) {
event.preventDefault();
console.log( $( this ).serialize() );
var data = $(this).serialize();
action = 'my_submit_log_action';
$.post(
ajaxurl,
data,
function ( response ) {
if ( ! response.success ) {
alert( 'Failure!' );
}
alert( 'Success!' );
}
);
});
});
これは WordPress にあるため、WordPress がこのデータを渡す関数を認識できるように、アクションを渡す必要があります。アクションを正しく渡しているかどうかはわかりません (上記を参照)。
2 番目の部分は、私が理解していない PHP です。シリアル化されたデータを取得してデータベースに投稿するにはどうすればよいですか?
add_action('wp_ajax_my_submit_log_action', 'my_submit_log_action');
add_action('wp_ajax_nopriv_my_submit_log_action', 'my_submit_log_action');
function my_submit_log_action() {
global $wpdb;
$user_id = $_POST['user_id'];
$length = $_POST['length'];
$ground = $_POST['ground'];
$date = $_POST['date'];
$notes = $_POST['notes'];
$wpdb->insert('wp_jo_plugin_options', array (
'user_id' => $user_id,
'length' => $length,
'ground' => $ground,
'date' => $date,
'notes' => $notes,
) );
die();
}