Внешний интерфейс содержит кнопку, которая вызывает функцию js, которая затем должна вызывать функцию php.это в соответствии с тем, что я читал о php, являющемся языком сервера, и не может напрямую использоваться для обработки событий onclick.
Таким образом, нажатие кнопки, помещенной на определенную страницу интерфейса, вызывает скрипт.js function onclick = "sendAjaxRequest (true);"
У меня в папке плагинов есть js-файл script.js со следующим кодом:
function my_enqueue() {
wp_enqueue_script( 'ajax-script', get_template_directory_uri() . '/js/my-ajax-script.js', array('jquery') );
wp_localize_script( 'ajax-script', 'my_ajax_object',
array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
}
add_action( 'wp_enqueue_scripts', 'my_enqueue' );
function sendAjaxRequest(value){
jQuery.ajax({
url: my_ajax_object.ajax_url,
type: 'POST',
data: ({action : 'get_my_option', value:value}),
success: function( response ) {
console.log( response );
}
});
}
и php-плагин wsn-plugin.php со следующими строками кода:
wp_enqueue_script('wsn-script', plugin_dir_url(__FILE__) . 'script.js');
wp_efunction your_function_name()
{
// wp_enqueue_script( 'myfunction', get_template_directory_uri().'/assets/js/applicantid.js', array( 'jquery' ), '1.0',true);
wp_localize_script( 'myfunction', 'my_ajax_script', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) );
}
add_action('template_redirect', 'your_function_name');
function get_my_option()
{
//get applicant id (looks like this is what you want to get back?)
//send json headers
header( "Content-Type: application/json" );
//print out you response as json
echo json_encode( $value );
//must have an exit in the ajax action callback!
exit();
}
add_action("wp_ajax_nopriv_get_my_option", "get_my_option");
add_action("wp_ajax_get_my_option", "get_my_option");nqueue_script('wsn-script');
После запуска сценария, нажав кнопку, я получаю сообщение об ошибке: «Uncaught SyntaxError: Неожиданная строка», и отладчик останавливается в определенной точке вФайл jquery.js, если я пропущу этот пункт, он перейдет к следующему и следующему.
Чего мне не хватает?