Witam chcę przesłać dane z pliku JS do Wordpress'a,
$("#save").on('click',function(){
html2canvas(document.getElementById("create")).then(function (canvas) {
var dataURL = canvas.toDataURL("image/png", 0.9);
alert(dataURL);// tutaj wyświetla poprawnie
$.ajax({
type:"POST",
url: '<?php echo admin_url('admin-ajax.php');?>'+'?action=save_photo',
data: dataURL
}).done(function(){
alert(data);
})
});
});
alert(dataURL) wyświetla poprawnie, natomias alert(data) wyświetla się "Uncaught ReferenceError: data is not defined
at Object.<anonymous> ((index):188)
at c (jQuery.js:2)
at Object.fireWith [as resolveWith] (jQuery.js:2)
at l (jQuery.js:2)
at XMLHttpRequest.<anonymous> (jQuery.js:2)"
Próbowałem przesyłać zamiast "data:dataURL" to "data:{action:'save_photo', 'imgURL':dataURL}
Za pomocą
var data={action: 'save_photo', imgURL:dataURL};
$.post(send_rendered_photo.ajaxurl,data,function(data){
alert('wysłano '+data);
});
kod wordpress'a
function l_m_add_ajax_js(){
wp_enqueue_script('l_m_ajax_render_photo', plugins_url('scripts/save_photo.js', __FILE__), true);
if(isset($_SERVER['HTTPS'])){
$protocol = 'https://';
}
else{
$protocol = 'http://';
}
$params = array('ajaxurl'=>admin_url('admin-ajax.php',$protocol));
wp_localize_script('l_m_ajax_render_photo','send_rendered_photo', $params);
}
add_action('wp_footer', 'l_m_add_ajax_js');
add_action('wp_ajax_save_photo', 'l_m_request_data');
add_action('wp_ajax_nopriv_save_photo', 'l_m_request_data');
function l_m_request_data(){
if(isset($_POST['data'])){
$zmienna = $_POST['data'];
var_dump($zmienna);
wp_die();
}
}
W drugim przypadku wyświetlił się komunikat "wysłano 0"
Podejrzewam że mam jakiś błąd w pliku JS ale nie mogę rozgryźć jaki
Dziekuję za wszelką pomoc