2015-01-19 3 views
-1

Я пытаюсь отформатировать, какие новые комментарии будут выглядеть в списке комментариев Wordpress, используя Ajax. Это фрагмент, над которым я работаю.Использование PHP в JQuery Variable

Полный кусок можно найти здесь: http://pastebin.com/UHnPgf4J

success: function(data, textStatus){ 
if(data=="success"){ 
var avatar = <?php echo get_avatar($comment, 32); ?>; 
var author = <?php the_author_meta('user_url'); ?>; 
var timestamp = <?php printf(__('%1$s at %2$s'), get_comment_date(), get_comment_time()) ?>; 
var commenttext = jQuery('#comment').val(); 

jQuery('<li>'+'<div class="comment-author vcard">'+avatar+ 
     '<div class="comment-meta">'+author+'</div>'+ 
     '<div class="comment-time-stamp">'+timestamp+'</div>'+ 
     '<div class="comment-text">'+commenttext+'</div>'+'</li>'+).insertBefore(respond); 
statusdiv.html('<p class="ajax-success" >Thanks for your comment. We appreciate your response.</p>'); 

} 

только один, который работает в «commenttext», потому что он не имеет PHP. Остальные («аватар», «автор» и «метка времени») возвращаются с ошибками в Firebug.

Я пробовал некоторые предложения, которые я нашел, но не смог заставить их работать. Любая помощь будет оценена по достоинству.

+0

Try цитаты вне '' –

+0

Для будущего: Просто смотреть источник в браузере после запуска это и посмотреть, как синтаксис перепутался в JS, а затем исправить. – developerwjk

+0

Этот файл обрабатывается php? –

ответ

0

Недостающие кавычки вокруг <?php ... ?> теги

Попробуйте это:

success: function(data, textStatus){ 
    if(data=="success"){ 
    var avatar = "<?php echo get_avatar($comment, 32); ?>"; 
    var author = "<?php the_author_meta('user_url'); ?>"; 
    var timestamp = "<?php printf(__('%1$s at %2$s'), get_comment_date(), get_comment_time()) ?>"; 
    var commenttext = jQuery('#comment').val(); 

    jQuery('<li>'+'<div class="comment-author vcard">'+avatar+ 
    '<div class="comment-meta">'+author+'</div>'+ 
    '<div class="comment-time-stamp">'+timestamp+'</div>'+ 
    '<div class="comment-text">'+commenttext+'</div>'+'</li>'+).insertBefore(respond); 
    statusdiv.html('<p class="ajax-success" >Thanks for your comment. We appreciate your response.</p>'); 

    } 
} 
+0

Спасибо! Очень простое исправление. – BlueHelmet

0

Вы должны скопировать значения строк двойными кавычками в Javascript.
Как это:

var author = "<?php the_author_meta('user_url'); ?>";