Javascript не работает внутри функции PHP

Я новичок в JavaScript.

Когда я пробую следующий код, кажется, нет результата, кроме пустого экрана:

function send_to_class($data)
{
echo 'PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP';
    ?>
        <script type = "text/javascript">
             $(".username").append(<?php echo $data;?>); 
        </script>
    <?php
echo 'EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE';
}

и мой PHP

$data = "You might think I'm Bonkers, but I just think I'm Free";
send_to_class($data);

и мой HTML

<span class = "username"></span>
  1. Функция объявляется до того, как инициируется send_to_class ($ data).
  2. Буквы «P» и «E» отображаются нормально, просто нет среднего предложения.
  3. Я пробовал div, id и классы, добавляя CSS и изменяя тег скрипта.

2 вещи: а) как заставить работать функцию, которая добавляет $ data в класс .username и б) как заставить ее работать, если $ data является массивом? Может ли Javascript таким образом печатать массивы php?

Спасибо.

$(".username").append(<?php echo $data;?>); должен быть $(".username").append('<?php echo $data;?>'); или $(".username").append("<?php echo $data;?>");. и убедитесь, что добавлена ​​библиотека jQuery
Anant Kumar Singh 01.09.2018 15:12
«Я новичок в JavaScript».. затем начните правильно и не смешивайте все это с языком на стороне сервера. Эти двое работают в совершенно разных местах и ​​в разное время.
charlietfl 01.09.2018 15:20

Мне нужна совместимость. И да, живой - я только что видел это. Я попытался добавить в сценарий символы "", но, похоже, это все равно не работает. Как обычно таким образом можно использовать php и javascript? Я правильно понял теги сценария? Вот моя библиотека: <script src = "ajax.googleapis.com/ajax/libs/jquery/3.3.1/…>. Будет ли это работать с таким типом Javascript?

Ace Thanks 01.09.2018 15:25

Включите отчет об ошибках php. Если ошибок не отображается, проверьте просмотр / исходный код в своем браузере, получаете ли вы где-нибудь «ppppp»? Если да, проверьте консоль инструментов разработчика вашего браузера на наличие ошибок.

James 01.09.2018 15:38

Я использовал ini_set ('display_errors', 1); error_reporting (E_ALL); на всех 3 страницах и ошибок не было. Я проверил наличие ошибок консоли, и, похоже, весь javascript работает нормально, если вы это имеете в виду? Я вижу в своем браузере, что сценарий отображается и что правильные значения находятся внутри javascript. Думаю, у меня старый jquery? Я не знаю, какой я должен работать.

Ace Thanks 01.09.2018 15:45

Разобрал. Это произошло потому, что у меня был включенный файл send_to_class.php, который визуализировался и выполнялся ДО того, как была построена html DOM, и, как мы знаем, javascript может управлять вещами из DOM только после того, как он отображается в браузере. Похоже, я буду запускать весь свой php внизу страницы.

Ace Thanks 01.09.2018 15:54

Что мне делать для ответа? Самому писать это хорошо или? Я слышал, что этот темп немного ограничивает поведение людей. Я отвечу?

Ace Thanks 01.09.2018 15:55

Вы можете ответить на свой собственный вопрос, если хотите, или вы можете отредактировать свой вопрос и поставить ответ там, сохраняя при этом вопрос, чтобы будущие люди, у которых может быть точно такой же вопрос, знали, как или что вы сделали, чтобы решить его, если они испытывают то же самое. выпуск ... Спасибо :)

This Guy 01.09.2018 20:32
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
8
66
1

Ответы 1

Я обнаружил, что из-за того, что $ data, которые я отправлял, содержали ", это необходимо для экранирования". Итак, в моем php-файле, который производил данные, мне пришлось включить следующее:

<div class = "class1">some words</div>

в это:

<div class=\"class1\">some words</div>

Это потому, что это javascript, который выполняет печать, и когда javascript выполняет печать «s, он должен экранировать их с помощью обратной косой черты, подобной этой \».

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