Переменная Echo PHP из JavaScript?

У меня есть страница PHP с некоторым кодом JavaScript, но этот код JavaScript ниже работает, или, может быть, я ушел!

Я пробую что-то вроде этого:

var areaOption=document.getElementById("<?php echo @$_POST['annonsera_name']?>"); areaOption.selected=true; 

Также я пробовал это, но он только предупреждает BLANK alert-box:

  alert (<?php echo $test;?>); // I have tried this with quotes, double-quotes, etc... no luck 

Я думаю, что здесь совершенно неправильно?

ОБНОВИТЬ

Некоторые PHP-коды:

  <?php $test = "Hello World!"; ?> 

Во втором примере вам не хватает кавычек вокруг строки (поэтому H интерпретируется как переменная, которую вы не установили).

Проверьте это:

 alert (<?php echo "'H'";?>); 

ИЛИ

 alert ('<?php echo "H";?>'); 

PHP работает на стороне сервера, а Javascript работает на стороне клиента.

Процесс заключается в том, что PHP генерирует Javascript, который будет выполнен на стороне клиента.

Вы должны проверить JS, который генерируется, просто просматривая код. Конечно, если JS полагается на некоторые PHP-переменные, их нужно инициировать до вывода JS.

 <?php $test = 'Hello world'; ?> <html> <body> <script> alert('<?php echo $test; ?>'); </script> </body> </html> 

будет работать, но

 <html> <body> <script> alert('<?php echo $test; ?>'); </script> </body> </html> <?php $test = 'Hello world'; ?> 

не будет

Используйте json_encode для преобразования некоторого текста (или любого другого типа данных) в литерал JavaScript. Не просто ставьте кавычки вокруг эхо-строки – что, если строка содержит в себе цитату или новую строку или обратную косую черту? Лучший случай, когда ваш код терпит неудачу, в худшем случае у вас есть большое старое сквозное отверстие для проверки скриптов.

Так,

 <?php function js($o) { echo json_encode($o, JSON_HEX_TAG|JSON_HEX_APOS|JSON_HEX_QUOT|JSON_HEX_AMP); } ?> <script type="text/javascript"> var areaOption= document.getElementById(<?php js($_POST['annonsera_name']); ?>); areaOption.selected= true; alert (<?php js('Hello World'); ?>); </script> 

Ваше использование @$_POST означает, что вы получили (или ожидаете) ошибки – проверьте свой сгенерированный источник, чтобы узнать, правильно ли было введено значение. В противном случае document.getElementById завершится с ошибкой, и вы не получите никакого вывода.

  alert("Delete entry <? echo $row['id']; ?> ") 

Если ваше расширение js, php не будет работать в этом файле.

Причина заключается в том, что php анализирует файлы, которые он должен использовать. Типы файлов, которые будут обрабатывать php, настраиваются в httpd.conf с помощью команд AddType (или директив, независимо от того, что они вызывают).

Таким образом, у вас есть 3 варианта:

  • добавить filetype js в список файлов, который будет обрабатывать php (BAD, ОЧЕНЬ ПЛОХО)
  • сделать скрипт встроенным в некоторый php-файл
  • переименуйте файл в файл script.js.php и в начале файла укажите тип содержимого, например:

    <? php header ('content-type: text / javascript'); ?>

Ура!