我有问题。我不知道为什么,但表单中的参数没有传递太多aad\\u process\\u ajax()。
函数和jquery中的我的代码:
与我的表单配合使用:
function aad_render_admin() {
?>
<div class="wrap">
<h2><?php _e(\'Admin Ajax Demo\', \'aad\'); ?></h2>
<div class="wrap">
<form id="aad-form" action="" method="POST">
<div>
<input type="text" name="name" />
<input type="text" name="header" />
<input type="text" name="body" />
<input type="text" name="urls" />
<input type="submit" name="aad-submit" id="aad_submit" class="button-primary" value="<?php _e(\'Get Results\', \'aad\'); ?>"/>
<img src="<?php echo admin_url(\'/images/wpspin_light.gif\'); ?>" class="waiting" id="aad_loading" style="display:none;"/>
</div>
</form>
<div id="aad_results"></div>
</div>
<?php
}
Jquery代码:
jQuery(document).ready(function($) {
$(\'#aad-form\').submit(function() {
$(\'#aad_loading\').show();
$(\'#aad_submit\').attr(\'disabled\', true);
data = {
action: \'aad_get_results\',
aad_nonce: aad_vars.aad_nonce
};
$.post(ajaxurl, data, function (response) {
$(\'#aad_results\').html(response);
$(\'#aad_loading\').hide();
$(\'#aad_submit\').attr(\'disabled\', false);
});
return false;
});
});
这个函数没有得到我的参数为什么?
function aad_process_ajax() {
global $wpdb;
echo $name = $_POST[\'name\'];
$header = $_POST[\'header\'];
$body = $_POST[\'body\'];
$urls = $_POST[\'urls\'];
echo \'xxxx\';
$wpdb->insert(
\'wp_myprojects\',
array( \'name\' => $name,
\'header\' => $header,
\'body\' => $body,
\'urls\' => $urls,
),
array( \'%s\',
\'%s\',
\'%s\',
\'%s\'
)
);
$wpdb->show_errors();
/*EVRY PROCESS AJAX MUST DIE!!!!*/
die();
/*EVRY PROCESS AJAX MUST DIE!!!!*/
}
add_action(\'wp_ajax_aad_get_results\',\'aad_process_ajax\');
告诉我为什么函数中不显示参数
aad_process_ajax()
.
问题在Jquery或Wordpress中?
最合适的回答,由SO网友:gmazzap 整理而成
在jQuery代码中
data = {
action: \'aad_get_results\',
aad_nonce: aad_vars.aad_nonce
};
你只是路过
action
和
aad_nonce
, 你是
not 传递表单数据。
如果要传递变量,必须使用ajax传递,请使用以下方法:
data = {
action: \'aad_get_results\',
aad_nonce: aad_vars.aad_nonce,
form_data: $(\'#aad-form\').serialize()
};
之后,在你的
aad_process_ajax
功能使用:
function aad_process_ajax() {
parse_str($_POST[\'form_data\'], $form_data);
$name = isset($form_data[\'name\']) ? : \'\';
$header = isset($form_data[\'header\']) ? : \'\';
$body = isset($form_data[\'body\']) ? : \'\';
$urls = isset($form_data[\'urls\']) ? : \'\';
// the rest of your code here
}