2015-03-12 4 views
0

Я создал плагин wordpress, чтобы проголосовать за сообщение, используя ajax. При нажатии на «голос» связать Jquery всплывающих работы, Ваш голос будет добавлен, но тогда страница перезагружаетсяперезагрузка страницы при использовании ajax

add_action("wp_ajax_my_user_vote", "my_user_vote"); 
    add_action("wp_ajax_nopriv_my_user_vote", "my_must_login"); 

    function my_user_vote() { 

    if (!wp_verify_nonce($_REQUEST['nonce'], "my_user_vote_nonce")) { 
     exit("No naughty business please"); 
    } 


    $user_id = get_current_user_id(); 

    date_default_timezone_set('GMT+2'); 
    $dateVoted = get_user_meta($user_id, 'date'); 
    $today = date('d M Y'); 
    if ($dateVoted === $today){ 
     //Already Voted 
     echo '<script language="javascript">'; 
     echo 'alert("already voted")'; 
     /* 
     echo 'alert("User ID: ' . $user_id . '")'; 
     echo 'alert("Date Voted: ' . $dateVoted . '")'; 
     echo 'alert("Today: ' . $today . '")'; 
     */ 
     echo '</script>'; 

    }else{ 

     $vote_count = get_post_meta($_REQUEST["post_id"], "votes", true); 
     $vote_count = ($vote_count == '') ? 0 : $vote_count; 
     $new_vote_count = $vote_count + 1; 

     $vote = update_post_meta($_REQUEST["post_id"], "votes", $new_vote_count); 

     if($vote === false) { 
      $result['type'] = "error"; 
      $result['vote_count'] = $vote_count; 
     } 
     else { 
      $result['type'] = "success"; 
      $result['vote_count'] = $new_vote_count; 
     } 

     if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { 
      $result = json_encode($result); 
      echo $result; 
     } 
     else { 
      header("Location: ".$_SERVER["HTTP_REFERER"]); 
     } 

     update_user_meta($user_id, 'date', $today); 

    } 
    die(); 

} 


function my_must_login() { 
    echo "You must log in to vote"; 
    die(); 
    } 

    add_action('init', 'my_script_enqueuer'); 

    function my_script_enqueuer() { 
     wp_register_script("my_voter_script", WP_PLUGIN_URL.'/video-of-the-  day/my_voter_script.js', array('jquery')); 
     wp_localize_script('my_voter_script', 'myAjax', array('ajaxurl' => admin_url('admin-ajax.php')));   

     wp_enqueue_script('jquery'); 
     wp_enqueue_script('my_voter_script'); 

    } 

У меня также есть Jquery файл:

jQuery(document).ready(function() { 

     jQuery(".user_vote").click(function() { 
      post_id = jQuery(this).attr("data-post_id") 
      nonce = jQuery(this).attr("data-nonce") 

     jQuery.ajax({ 
     type : "post", 
     dataType : "json", 
     url : myAjax.ajaxurl, 
     data : {action: "my_user_vote", post_id : post_id, nonce: nonce}, 
     success: function(response) { 
      if(response.type == "success") { 

      } 
      else { 
       alert("Your vote could not be added") 
      } 
     } 
     }); 

    }) 

    }); 

почему это Аякс не работает ?

ответ

1

Попробуйте

jQuery(".user_vote").click(function(e) { 
    e.PreventDefault(); 
}); 
Смежные вопросы