Экранирование PHP $ для JQuery this. $ Content

Я столкнулся с проблемой при работе с jQuery и PHP.

Я печатаю <script> внутри функции PHP и повторяю его для конкретных задач.

Однако, когда я читаю значения из внешнего ввода HTML, я использую jQuery и просматриваю, чтобы прочитать эти значения и сохранить их внутри переменной, а затем получить эту переменную. Он работает извне PHP только в jQuery, но строка, которую я вызываю, такова:

var findDescription = this.$content.find('input#newDescription');

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

Мой код jQuery внутри PHP выглядит так:

<script>

// Saving PHP variables in JS vairables
var id = '$id';
console.info(id);
$('#modal-$i').click(function(){
    console.info(id);
    $.confirm({
        icon: 'fas fa-users',
        title: 'Subject: $name',
        content: 'What would you like to do with this subject? <br><b>Description:<b> $description',
        buttons: {
            Description: {
                btnClass: 'btn-info',
                text: 'Description',
                action: function () {
                    console.info(id);
                    $.confirm({
                        title: 'Edit Description',
                        content: 'url: editDescription.html',
                        action: function(){
                            var findDescription = this.\$$content.find('input#newDescription');
                            console.info(findDescription);
                            var newDescription = findDescription.val();
                            if (newDescription === '') {
                                $.alert({
                                    content: 'One of the fields from the form was empty',
                                    type: 'red'
                                });
                                return false;
                            } else {
                                editSubjectDescription(id, newDescription);
                            }
                        }
                    });
                }
            },
            Image: {
                btnClass: 'btn-info',
                text: 'Edit Image',
                action: function() {
                    var id = $id;
                    editSubjectImage(id);
                }
            },
            Delete: {
                btnClass: 'btn-danger',
                text: 'Delete',
                action: function () {
                    var id = '$id';
                    deleteSubject(id);
                }
            },
            Close: {
                btnClass: 'btn-default',
                text: 'Close'
            }   
        }
    });
});

</script>

Надеюсь, кто-то может помочь, заранее спасибо

Я где-то не вижу открывающегося PHP-тега. Этот код вообще не следует анализировать как PHP. Как запустить интерпретатор PHP? Это внутри Heredoc?

Philipp Maurer 14.03.2018 11:14

не смешивайте php и js - это плохая практика, создавать скрытый элемент ввода с желаемым $id в качестве значения

treyBake 14.03.2018 11:25

Прочитав свой вопрос несколько раз и взглянув на предоставленные ответы, вы обнаружите, что проблема, с которой вы столкнулись, совершенно неясна. «Переменные PHP объявлены как знак $, который вызывает проблему». не является допустимой спецификацией проблемы. Пожалуйста уточни.

Philipp Maurer 14.03.2018 11:27

Если вы пытаетесь избежать одиночного $, почему вы используете \$$?

jeroen 14.03.2018 11:32
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
4
166
1

Ответы 1

<?php ob_start(); ?>



<script>
    // Saving PHP variables in JS vairables
    var id = '<?php echo $id ?>';
        console.info(id);
    $('#modal-<?php echo $i ?>').click(function(){
        console.info(id);
        $.confirm({
            icon: 'fas fa-users',
            title: 'Subject: <?php echo $name ?>',
            content: 'What would you like to do with this subject? <br><b>Description:<b> <?php echo $description ?>',
            buttons: {

                Description: {
                    btnClass: 'btn-info',
                    text: 'Description',
                    action: function () {
                    console.info(id);
                        $.confirm({
                            title: 'Edit Description',
                            content: 'url: editDescription.html',
                            action: function(){
                                var findDescription = this.\$$content.find('input#newDescription');
                                console.info(findDescription);
                                var newDescription = findDescription.val();

                                if (newDescription === '') {
                                    $.alert({
                                       content: 'One of the fields from the form was empty',
                                       type: 'red'
                                    });
                                    return false;
                                } else {
                                    editSubjectDescription(id, newDescription);
                                }
                            }
                        });
                    }
                },
                Image: {
                    btnClass: 'btn-info',
                    text: 'Edit Image',
                    action: function() {
                        var id = <?php echo $id ?>;
                        editSubjectImage(id);
                    }
                },
                Delete: {
                    btnClass: 'btn-danger',
                    text: 'Delete',
                    action: function () {
                        var id = '<?php echo $id ?>';
                        deleteSubject(id);
                    }
                },
                Close: {
                    btnClass: 'btn-default',
                    text: 'Close'
                }   
            }
        });
    });
</script>


<?php 

$jsCode = ob_get_clean(); 

echo $jsCode; //USE THIS VARIABLE WHEREVER ITS NEEDED.

?>

$jsCode - это переменная, содержащая ваш JS скрипт ... Поместите ее в свой код в необходимые поля. Однако основная проблема заключалась в том, что вы поместили переменную PHP в свой JS, не указав открывающие теги <?php и закрывающие теги ?>.

И у вас также есть проблема здесь, в \$$content, что вы пытаетесь сделать?

var findDescription = this.\$$content.find('input#newDescription');

Другие вопросы по теме