我已经为此挣扎了几天了,所以欢迎提供任何帮助。这不是我第一次用WP设置Ajax,所以我至少有一些想法。它涉及一个非常标准的表单验证和向数据库输入信息。This all inside of a plugin.
那么,工作原理是:表单提交工作,jquery脚本被激活,并将输入信息转发到回调PHP文件。
问题是,由于某种原因,处理该PHP文件上表单的特定函数没有被激活。
那么,我有什么?我会跳过这个表格,因为它看起来很标准。
1-javascript/jquery
/插件/警报小部件/提交处理程序。js公司
jQuery(document).ready( function() {
jQuery("#alert_set_form").on("submit", function(e) {
e.preventDefault();
var info = jQuery("#alert_set_form").serialize();
// Post to the server
jQuery.ajax({
type:"POST",
url:ajaxAlert.ajaxurl,
data:info,
dataType:\'json\',
success: function(data){
jQuery("#alert_set_form .stm-validation-message").html(data);
}
});
});
});
1-构建表单并处理验证/数据输入的主PHP插件文件。
/插件/警报小部件/警报小部件。php
add_action(\'wp_ajax_bda_alert\', \'bda_alert_validation\');
add_action(\'wp_ajax_nopriv_bda_alert\', \'bda_alert_validation\');
/* this commented out code was placed just to check if call hits the file, which it does
if( isset($_POST[\'model\'])){
$criteria = array(
\'model\' => $_POST[\'model\'],
\'body\' => $_POST[\'body\'],
\'price\' => $_POST[\'price\'],
\'mileage\' => $_POST[\'mileage\'],
\'ca-year\' => $_POST[\'ca-year\'],
\'fuel\' => $_POST[\'fuel\'],
\'transmission\' => $_POST[\'transmission\']
);
$criteria = base64_encode(serialize($criteria));
$response = $criteria;
wp_send_json( $response );
wp_die();
}
*/
function bda_alert_validation(){
//does validation and input
$response =array(
\'data\' => \'success\',
\'supplemental\' => array(
\'message\' => \'success\',
),
) ;
wp_send_json( $response );
wp_die();
}
add_action(\'init\', \'alert_form_init\' );
function alert_form_init() {
wp_register_script( "alert_form_script", WP_PLUGIN_URL.\'/alert-widget/submit_handler.js\', array(\'jquery\') );
wp_localize_script( \'alert_form_script\', \'ajaxAlert\', array( \'ajaxurl\' => admin_url( \'admin-ajax.php\' )));
wp_enqueue_script( \'jquery\' );
wp_enqueue_script( \'alert_form_script\');
}