[英]Echo PHP variable from JavaScript?
我也有一個帶有一些 JavaScript 代碼的 PHP 頁面,但是下面的這段 JavaScript 代碼似乎不起作用,或者我可能離題了!
我正在嘗試這樣的事情:
var areaOption=document.getElementById("<?php echo @$_POST['annonsera_name']?>");
areaOption.selected=true;
我也試過這個,但它只提醒一個空白的警報框:
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 將解析的文件類型使用 AddType 命令(或指令,無論它們被調用)在 httpd.conf 中配置。
所以你有3個選擇:
將文件重命名為script.js.php,並在文件開頭指定內容類型,如下所示:
<?php header( 'content-type: text/javascript' ); ?>
干杯!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.