Встраивание php в javascripts

#php #javascript

#php #javascript

Вопрос:

Я пытался встроить некоторый PHP в функцию javscript, которая вызывается из onChange в выпадающем списке. функция javascript находится в файле .js, я могу заставить DDL вызывать функцию, однако я не могу заставить функцию работать с php … в конечном итоге я собираюсь использовать значение, выбранное в DDL, для доступа к базе данных и заполнения других полей оттуда, прямо сейчас я пытаюсь заставить его работать с php:

     function controllerType(){

       alert('outside php');
       <?php
       $message = "inside php";
       echo "alert('$message');";
       ?>

     }
  

Функция выводит первое оповещение, но не оповещение, вызванное в php.

Комментарии:

1. Когда вы изучаете JavaScript, видите ли вы PHP «как есть»?

Ответ №1:

Вероятно, ваш веб-сервер по умолчанию не ищет PHP-код в .js файлах. Вам придется указать ему либо искать PHP в этих файлах, либо изменить расширение файла на .php .

Если вы хотите попробовать первое и используете веб-сервер Apache, попробуйте добавить следующую строку в свой .htaccess файл:

AddHandler application/x-httpd-php .js

Комментарии:

1. есть ли способ заставить onChange вызывать PHP-функцию в php-файле?

2. @user744480 Это сложная тема, и ее следует опубликовать в отдельном вопросе.

Ответ №2:

Попробуйте следующее

 function controllerType() {
    alert('outside php');
    alert('<?php echo $message; ?>');
}
  

Комментарии:

1. С точки зрения JavaScript разницы быть не должно.

2. Я бы тоже так не думал :-

3. Теперь вы создаете PHP-код с помощью javascript, я думаю, идея OP заключалась в создании JS-кода с помощью PHP 🙂

4. О чем ты говоришь? Вы не можете создать PHP-код с помощью javascript, по крайней мере, определенно не таким способом — для этого потребовался бы asycn / syncrhonous запрос…. Это просто помещение переменной PHP в его код javascript… Итак, да, я создаю JS-код с помощью PHP .. я не знаю, где вы видите это иначе..

Ответ №3:

Вы не можете вызвать alert() на PHP.

PHP может просто отображать текст, который интерпретатор JavaScript может интерпретировать как JavaScript.

Что касается опубликованного вами кода, все это должно выполняться JavaScript нормально. CodePad.

Ответ №4:

Я думаю, проблема может заключаться в том, что ваш javascript не оценивается вашим анализатором PHP. Возможно, вам придется создать отдельный документ для этой функции, который заканчивается на .php или с использованием .htaccess (при условии, что вы используете apache), чтобы сообщить вашему обработчику php о необходимости разбора файлов .js

Ответ №5:

Из вашего следующего предложения:

в конечном итоге я собираюсь использовать значение, выбранное в DDL, для доступа к базе данных и заполнения оттуда других полей

Это действительно звучит так, как будто вы пытаетесь заставить PHP-код выполняться во время выполнения в браузере. PHP — это серверный язык, и вы не можете просто использовать его в файле javascript, как вы пытаетесь.

Вам нужно будет, чтобы функция javascript отправляла значение из выпадающего списка на страницу PHP через HTML-форму или через AJAX.

Простите меня, если я вас неправильно понял.

Комментарии:

1. Похоже, вы поняли, к чему я пытался прийти, мне в основном нужна страница для перезагрузки, отображающая информацию, полученную из базы данных, на основе выбранного значения… итак, вы предлагаете мне создать javascript, который отправляет выбранное значение на новую страницу php?

2. Это правильно. Вы могли бы сделать это просто с помощью window. Расположение. href = «page.php?item=» ddl_value; Это перенаправит пользователя на страницу php. Другой способ сделать это без перезагрузки страницы — использовать AJAX, взгляните на библиотеку javascript jQuery, это намного упрощает работу с AJAX.

Ответ №6:

 <?php
   $message = "inside php";
?>
<script type="text/javascript">
function controllerType(){
       alert('outside php');
       alert(<?=$message;?>);
     }
</script>