我尝试做一些非常严格的事情......让javascript获得php值
这是代码..
<script language="javascript">
<?php $imagepath = $_REQUEST["path"]; ?>
var whatisthepath = <?php $imagepath; ?>
alert (whatisthepath);
</script>
总是不明白......为什么?
-
最终的wordking优化代码:
alert ("<?php echo $_REQUEST["path"]; ?>");
答案 0 :(得分:4)
缺失:var周围的引号,php输出到js var,var设置后的分号:
<script language="javascript">
<?php $imagepath = $_REQUEST["path"]; ?>
var whatisthepath = "<?php echo $imagepath; ?>";
alert (whatisthepath);
</script>
答案 1 :(得分:3)
JavaScript中的所有字符串都需要用引号括起来。例如:
var whatisthepath = "<?php $imagepath; ?>";
另一个问题是你实际上并没有打印字符串。以上所有代码行都会产生一组空引号。正确的方法是echo
图像路径
var whatisthepath = "<?php echo $imagepath; ?>"
答案 2 :(得分:2)
正是出于这个目的,PHP提供了<?= ... ?>
的简写符号。要输出变量$ imagepath的值,可以使用<?= $imagepath ?>
。为此,必须将short_open_path ini变量设置为true。这可能不是您的Web服务器的默认设置。
因此,这会将代码转换为
<?php
ini_set('short_open_tag', TRUE);
$imagepath = SOME_VALUE;
?>
<script language="javascript">
var whatisthepath = "<?= imagepath ?>";
alert(whatisthepath);
</script>
如果只是几个变量,更改ini值可能不方便,但如果它在代码中经常发生,我倾向于发现它使事情更具可读性。
答案 3 :(得分:1)
您忘记在$ imagepath前面添加echo或print语句
<script language="javascript">
<?php $imagepath = $_REQUEST["path"]; ?>
var whatisthepath = <?php echo $imagepath; ?>
alert (whatisthepath);
</script>
PHP是一种服务器语言,而javascript是一种客户端语言。这意味着你必须以威胁HTML的方式威胁它。
例如:
<div><?php echo $content; ?></div>
希望这会让你更好地理解......
答案 4 :(得分:1)
您可以使用json_encode()
确保为javascript正确转义和引用变量等。 e.g:
<?php $imagepath = $_REQUEST["path"]; ?>
<script language="javascript">
var whatisthepath = <?php echo json_encode($imagepath); ?> ;
alert (whatisthepath);
</script>
答案 5 :(得分:0)
您应该使用以确保变量具有正确的JS语法。
<script language="javascript">
<?php $imagepath = $_REQUEST["path"]; ?>
var whatisthepath = <?php echo json_encode($imagepath); ?>;
alert (whatisthepath);
</script>