У меня есть страница 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 варианта:
переименуйте файл в файл script.js.php и в начале файла укажите тип содержимого, например:
<? php header ('content-type: text / javascript'); ?>
Ура!