我做了一个快速$wpdb->insert
使用AJAX函数添加内容的函数。
目标是将表单数据插入到表中。
下面是我调用ajax的Javascript函数:
$(".modal__form").submit(function(e){
e.preventDefault();
$.post(
ajaxurl,
{
\'action\': \'add_to_newsletter\',
\'param\': $(this).serialize()
},
function(response){
if(response == \'success\') {
$(\'.modal__form\').hide();
$(\'.modal__box .text__success\').show();
}
}
);
});
标题中的表单数据可以打印为:
action: add_to_newsletter
param: firstname=FIRSTNAME&lastname=LASTNAME&email=EMAIL%40DOMAIN.COM&type=TYPE
在我的函数中,我有:
function add_to_newsletter() {
global $wpdb;
$table = $wpdb->prefix.\'newsletter\';
$param = $_POST[\'param\'];
if($wpdb->insert($table, array(
\'firstname\' => $param[\'firstname\'],
\'lastname\' => $param[\'lastname\'],
\'email\' => $param[\'email\'],
\'ip\' => $_SERVER[\'REMOTE_ADDR\']
),
array( \'%s\', \'%s\', \'%s\', \'%s\')
)) {
var_dump($wpdb);
echo \'success\';
}
else {
$wpdb->print_error();
}
die();
}
add_action( \'wp_ajax_add_to_newsletter\', \'add_to_newsletter\' );
add_action( \'wp_ajax_nopriv_add_to_newsletter\', \'add_to_newsletter\' );
问题是,我在发布时只在数据库中找到奇怪的东西。
这是var_dump()
回来
"INSERT INTO \'actz_newsletter\' (\'firstname\', \'lastname\', \'email\', \'ip\') VALUES (\'f\', \'f\', \'f\', \'::1\')"
有人想过类似的事情吗?我对我的研究一无所知。