Можно ли использовать PHP внутри скрипта jQuery? - PullRequest
10 голосов
/ 22 июня 2011

Например:

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

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

Спасибо!

Ответы [ 7 ]

13 голосов
/ 22 июня 2011

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

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

7 голосов
/ 22 июня 2011

Не замедлит страницу;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>
4 голосов
/ 22 июня 2011

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

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

3 голосов
/ 22 июня 2011

у вас есть лучший выбор - использовать ajax, который запускает скрипт php при обработке события 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's executed on server
}

});
    });
});
3 голосов
/ 22 июня 2011

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

2 голосов
/ 22 июня 2011

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

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

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

1 голос
/ 22 июня 2011

Нет, это не так.Так же, как вы знаете, что JS выполняется после разбора PHP-страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...