【发布时间】:2013-10-22 06:47:57
【问题描述】:
我正在使用 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 知道将这些数据传递给哪个函数。我不确定我是否正确通过了该操作(见上文)。
第二部分是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();
}
【问题讨论】:
-
您正在向未定义的 ajaxurl 发送 $.post(ajax 帖子)(我想它应该与 action 连接,但它不是,它必须是 url),并且您没有使用 'action ' 无论如何都是变量。所以问题出在你的 jQuery 中,也许可以了解更多关于 $.post api.jquery.com/jQuery.post 的信息
-
ajaxurl 被定义为我的 wordpress ajax - 这就是在 wordpress 中调用 ajax 的方式。
标签: javascript php jquery ajax wordpress