1
嘿,我正在使用畫布來放置圖像並保存它。我無法讓wordpress發出ajax請求。我不斷收回0 responseText。我一直在爲此工作好幾天,似乎無法讓它工作。我的頁面是http://studio-42.com/games。讓AJAX與Wordpress一起工作,不斷返回響應0
jQuery(document).on('click', '.draw-game', function() {
var testCanvas = document.getElementById("mycanvas");
var canvasData = testCanvas.toDataURL("image/png");
var postData = "canvasData="+canvasData;
var debugConsole= document.getElementById("debugConsole");
debugConsole.value=canvasData;
jQuery.ajax({
url : drawing.ajax_url,
type : 'post',
data : {
action : 'save_the_drawing',
imgBase64: postData,
},
success : function(response) {
alert(response);
這裏是我的JS
而這一次的PHP代碼
add_action('wp_enqueue_scripts', 'drawing_game_enqueue_scripts');
function drawing_game_enqueue_scripts() {
if(is_page('games')) {
wp_enqueue_style('drawing-game', plugins_url('/drawing-game.css', __FILE__));
}
wp_enqueue_script('drawing-game', plugins_url('/drawing-game.js', __FILE__), array('jquery'), '1.0', true);
wp_localize_script('drawing-game', 'drawing', array(
'ajax_url' => admin_url('admin-ajax.php')
));
}
add_action('wp_ajax_nopriv_save_the_drawing', 'save_the_drawing');
add_action('wp_ajax_save_the_drawing', 'save_the_drawing');
function save_the_drawing() {
$img = $_POST['postData'];
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$fileData = base64_decode($img);
//saving
$fileName = 'photo.png';
file_put_contents($fileName, $fileData);
}
我只保留取回一個0和它的駕駛我瘋了!請幫忙。謝謝!
感謝您的快速回復,Elliot。我添加了die()函數,但現在它根本不起作用。更清楚的是,Im試圖做的是處理img並將其轉換爲鏈接,然後自動發送到評論表單並提交。如果返回0是好的,那麼Im在正確的軌道上。我如何獲得它以PNG格式或鏈接的形式返回數據? –
Jarod,一旦你有鏈接,說'$ link = {add code here}'然後做'die($ link);'你也可以json_encode()你的鏈接,然後用jQuery檢索JSON使用'jQuery.parseJSON (responseFromAjax)'如果你想使用比字符串更高級的對象。 –
@JarodMeans如果答案無效,請告訴我,我會再次更新我的回覆。否則,如果您將其標記爲已解決,我將不勝感激。 –