Можно ли использовать PHP внутри jQuery script?

Например:

$(document).ready(function(){
    $('.selector').click(function(){
        <?php
        // php code goes here
        ?>
    });
});

Это приведет к проблемам или замедлению страницы? Это плохая практика? Есть ли что-то важное, что я должен знать, связанное с этим?

Спасибо!

Ответ 1

Если вы пытаетесь связать некоторый PHP-код с событием click, тогда это невозможно в том, как вы пытаетесь, и PHP-код будет выполнен сразу же после загрузки страницы, не дожидаясь события щелчка.

Если вы пытаетесь создать окончательный код javascript или jquery с помощью PHP, тогда это нормально.

Ответ 2

Это не замедлит страницу; PHP работает на сервере и испускает текст, который отправляется в браузер, как на любой странице PHP. Это плохая практика? Я бы не сказал "плохо" обязательно, но не очень. Это делает для грязного кода - в случае, когда мне нужно сделать что-то подобное, я обычно пытаюсь разбить его, как в:

<script>
    var stuff = <?php print $stuff; ?>;
    var blah = "<?php print $blah; ?>";

    // Do things in JS with stuff and blah here, no more PHP mixed in
</script>

Ответ 3

PHP выполняется на сервере, а затем javascript будет выполнен на клиенте. Итак, что вы будете делать здесь, это использование php для генерации javascript, который станет телом функции. Если это то, что вы пытались сделать, нет ничего плохого в этом.

Если вы считаете, что собираетесь использовать некоторый PHP-код из javascript, значит, вы ошибаетесь. Вам нужно будет поместить код PHP на отдельную страницу и использовать запрос ajax для получения результата.

Ответ 4

Конечно, если вы помните, что PHP-код будет выполняться сервером до отправки страницы. Кроме этого, получайте удовольствие.

Ответ 5

у вас есть лучший выбор для использования ajax, который запускает php script, когда вы обрабатываете событие click

$(document).ready(function(){
    $('.selector').click(function(){
       $.ajax({url:"phpfile.php",type:"POST",
data:"datastring="+value+"&datastring2="othervalue,

,success:function(data){
//get the result from the php file after it executed on server
}

});
    });
});

Ответ 6

PHP - это "базовый" язык, а javascript - это "внешний интерфейс". Короче говоря, до тех пор, пока PHP-код загружается через веб-сервер, который понимает PHP, недостатком является то, что вам нужно встроить JS, потеряв способность кэширования (есть обходные пути для анализа php в .js файлах, но вы не должны действительно сделай это). Для пользователя он будет выглядеть как javascript и HTML. Здесь порядок сервера:

  • Страница запросов пользователя.
  • Apache (или эквивалент) уведомляет об этом это php файл. Затем он отображает все php, которые находятся между тегами php.
  • Apache отправляет страницу пользователю.
  • Пользовательский браузер видит JavaScript и выполняет его.

Просто убедитесь, что PHP выдает действительный JavaScript.

Ответ 7

Нет, нет. До тех пор, пока вы знаете, что JS выполняется после анализа страницы PHP.