2012-03-14 24 views
0

誰かが私を助けてくれることを願っています。WordpressでAjaxが動作しない

私は私のfunctions.phpファイルに

wp_enqueue_script('my-ajax-request','/wp-content/themes/son-of-suffusion/js/ajax.js', array('jquery')); 
// declare the URL to the file that handles the AJAX request (wp-admin/admin-ajax.php) 
wp_localize_script('my-ajax-request', 'MyAjax', array('ajaxurl' => admin_url('admin-ajax.php'))); 


/*AJAX STUFF*/ 

// this hook is fired if the current viewer is not logged in 
do_action('wp_ajax_nopriv_' . $_REQUEST['action']); 
// if logged in: 
do_action('wp_ajax_' . $_POST['action']); 


// if both logged in and not logged in users can send this AJAX request, 
// add both of these actions, otherwise add only the appropriate one 
add_action('wp_ajax_nopriv_myajax-submit', 'myajax_submit'); 
add_action('wp_ajax_myajax-submit', 'myajax_submit'); 

function myajax_submit() { 

    echo 'ajax submitted';  

    die; 

    // IMPORTANT: don't forget to "exit" 
    exit; 

} 

と私のajax.jsファイルにこのコードを次のコードを持っているワードプレスhttp://www.garyc40.com/2010/03/5-tips-for-using-ajax-in-wordpress/

でAJAXを実行するためのガイドとして、次のチュートリアルを使用していました

// JavaScript Document 

jQuery(function($){ 
    $(".selected").click(function() { 

     alert("jQuery is working"); 
     $.post(MyAjax.ajaxurl, { 
    action: 'myajax-submit', 
     postID : MyAjax.postID 

    }, function(response) { 

    $("#content").html("loading..."); 
    $("#content").html(response);  


    }); 

    }); 


}) 

jQueryのアラートが表示されますが、Ajaxのコードが動作し、完全なページが更新されていません。私は何か間違っているのですか? Firebugを使用すると、私のjsコードにエラーはありません。

はbelow.Andのようなイベントを渡し、あなたのクリック機能で事前

答えて

2

にありがとう

を追加ev.preventDefault

$(".selected").click(function (ev) { 

    //prevents default action of the element 
    ev.preventDefault(); 
    alert("jQuery is working"); 
    $.post(MyAjax.ajaxurl, { 
    action: 'myajax-submit', 
    postID : MyAjax.postID 

    }, function(response) { 

$("#content").html("loading..."); 
$("#content").html(response);  


}); 

}); 
+0

こんにちはDG3あなたの答えに感謝。あなたが示唆したコード行を追加しました。最初にリンクをクリックしたときに、ajaxコードの表示が短く見えましたが、同じページを読み込んでも、同じアクションを再実行したときにajaxコードの表示は表示されませんでした。私は、Ajaxコードが実行されている疑いがありますが、ページコンテンツがコンテンツのdivに表示されたときに上書きされています – Amara

+0

私の悪い申し訳ありませんが、完全に機能し、私は関数にevを追加しませんでした。あなたは、ロック、おかげ:)この2日間は、ウィンドウの外に私のラップトップをチャックする準備ができていた。ありがとうございました :) – Amara

関連する問題