php jquery append - PullRequest
       2

php jquery append

0 голосов
/ 06 января 2012

Кто-нибудь знает способ заставить php работать с jquery append ()?скажем, у нас есть

 $('.class0').click(function(){
        $('.class1').append('<?=PHPCODE?>');
    });

Как заставить php работать после добавления?Спасибо!

Ответы [ 2 ]

3 голосов
/ 06 января 2012

Jquery - это javascript, и он выполняется в браузере, в то время как php - это серверный скрипт, поэтому теоретически PHP-скрипт всегда запускается первым перед любым javascript.Если вы хотите запустить какой-либо php-скрипт после завершения загрузки страницы (например, когда пользователь нажимает на кнопку), вам нужно сделать AJAX-вызов.($ .get (), $ .load () и т. д. являются примерами, использующими jquery)

Более подробно к вашему отредактированному вопросу: с вашим кодом скрипт php, который вы пишете внутри append, будет отображаться как простой текст,Вместо этого выполните вызов ajax перед добавлением и сохраните результат вызова ajax в переменной.Затем используйте: append (variable).

Вам также может быть интересно выполнить некоторые манипуляции с DOM, которые более эффективны, если вы загружаете огромный текст из своего php-скрипта.Вы можете вернуть объект JSON из сценария php, а затем использовать комбинации добавлений для создания желаемого результата.Это уменьшает объем данных, которые необходимо передать, но код JavaScript может быть длинным.

2 голосов
/ 06 января 2012

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

Документ HTML (index.php)

<?php
    include( 'config.php' ); // Example

    $foo = "<span style='color:red;'>WTF</span>" //OR <span style="color:red;">WTF</span>
?>
<html>
    <head>
        <script type="text/javascript">
            $.ready(function()
            {
                $('.element').click(function()
                {
                    $(this).append('<?php echo str_replace("'","\'",$foo);?>');
                    return false;
                });
            });
        </script>
    </head>
    <body>
        <a href="#" class="element">Element</a>
    </body>
</html>
  1. Использовать <?php echo $foo; ?>, <?=$foo;?> не рекомендуется.
  2. Избегайте особых символов, например: ' (простая квота).
  3. Использовать Smarty Template PHP Framework

Smarty Template PHP Framework

vista.php (MVC OOP)

<?php
    class myClass
    {
        public function myMethodName()
        {
            $var = '<span>text</span>';
            $this->template->assign( 'foo' , $var );
            $this->template->display('myTemplate.html');
        }
    }
?>

vista.php (NO OOP)

<?php
    $var = '<span>text</span>';
    $smarty = new Smarty;
    $smarty->assign( 'foo' , $var );
    $smarty->display( 'myTemplate.html' );
?>

myTemplate.html

<html>
    <head>
        <title>{$title}</title>
    </head>
    <body>
        {if $text}
            {$text}
            <ul>
                {foreach from=$list item=li}
                    <li>{$li}</li>
                {/foreach}
            </ul>
        {/if}
    </body>    
</html>

Смотрите и читайте документацию Smarty

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