Я пытаюсь вызвать функцию в другом .php-файле из этого, нажав кнопку, и я столкнулся с этим методом в другом месте в Интернете, но я не уверен, работает ли он. Я уменьшил PHP-код, чтобы просто дважды напечатать что-то на экране вместо вызова другого файла, чтобы продемонстрировать, что происходит не так:
<?php echo "hello"; ?> <?php echo <<<END <html> <body> <button type="button" onclick="handleButton()" id="button1">PHP Test</button> <script type="text/javascript"> function handleButton() { document.getElementById("button1").innerHTML = "PHP Test<?php echo 'HELLO';?>"; } </script> </body> </html> END; ?>
Не следует ли нажимать кнопку «HELLO» на экране? Вместо этого источником HTML для кнопки становится:
<button type="button" onclick="handleButton()" id="button1"> PHP Test <!--?php echo HELLO;?--> </button>
И ничего не происходит, когда нажимается кнопка. Поскольку «привет» отлично печатает, почему сервер комментирует вторую команду php echo?
PS: Я ожидаю много комментариев, говорящих: «Почему вы пытаетесь это сделать в первую очередь?» Я знаю, что могу создать HTML-форму, которая отправляется в php-файл, но моя цель состоит в том, чтобы сделать несколько кнопок на экране, каждый из которых ведет к другому файлу php. Я знаю, что я мог бы также привести форму к одному файлу php, который смотрит, какая кнопка на этом экране была нажата, и вызывает соответствующий файл php, но я бы хотел, чтобы сделать другой файл php просто для этого, если это может работать. Поэтому, если мне не хватает более эффективного подхода, я бы предпочел, чтобы мы просто придерживались вопроса о том, почему сервер комментирует этот код PHP. Благодарю.
PHP – это серверный язык и выполняется до того, как пользователь получит данные. Это означает, что вы не можете вызывать функцию PHP из JavaScript. Для этого вам нужно сделать запрос AJAX на страницу PHP и вернуть туда результаты. Кроме того, обязательно поставьте Hello
в кавычки. Я бы рекомендовал посмотреть некоторые уроки по PHP и JavaScript, чтобы вы могли повесить взаимодействие между ними и как заставить их делать то, что вы хотите, чтобы они делали.
Сторона примечания, строки должны быть в кавычках.
<?php echo "hello"; ?>
Если я понимаю, что вы пытаетесь сделать здесь, попробуйте следующее:
<html> <body> <button type="button" onclick="handleButton()" id="button1">PHP Test</button> <script type="text/javascript"> function handleButton() { document.getElementById("button1").innerHTML = "PHP Test <?php echo 'HELLO';?>"; } </script> </body> </html>
Предположим, что приведенный выше код находится в файле «index.php», и вы запрашиваете этот файл, используя http://example.com/index.php . Это приведет к тому, что в ваш браузер будет отправлен следующий HTML-код (который вы можете увидеть, если вы делаете «просмотр источника» на странице, загруженной в ваш браузер):
<html> <body> <button type="button" onclick="handleButton()" id="button1">PHP Test</button> <script type="text/javascript"> function handleButton() { document.getElementById("button1").innerHTML = "PHP Test HELLO"; } </script> </body> </html>
Нажатие на кнопку не имеет ничего общего с PHP в этот момент, поскольку PHP уже выполнил свою роль при загрузке страницы. На этом этапе, если вы хотите сделать запрос на скрипт PHP на стороне сервера, вы ДОЛЖНЫ использовать либо форму, либо запрос AJAX, либо IFRAME (и я мог бы продолжить здесь).
Я надеюсь, что это немного прояснится, но я должен подчеркнуть тот факт, что вы должны сделать еще немного чтения, прежде чем пытаться делать то, что вы пытаетесь сделать здесь.
Удачи!
Beacuse of HTML не имеет никакого смысла в том, откуда он исходит (php) – если это значение статично – поместите его туда и не мешайте ему выполнять его с cleint side, иначе используйте AJAX в любой форме – чтобы узнать, как это выглядит google
PS Сначала возьмите бит, изучающий, как работает веб-сайт – это будет связано с этой и другой подобной проблемой, прежде чем вы их получите
Вам будет лучше использовать переменную, объявленную ранее … (это проверено и работает)
<?php $buttonTitle = "HELLO"; echo 'hello'; ?> <?php echo <<<END <html> <body> <button type="button" onclick="handleButton()" id="button1">PHP Test</button> <script type="text/javascript"> function handleButton() { document.getElementById("button1").innerHTML = "$buttonTitle"; } </script> </body> </html> END; ?>