如何在JavaScript中嵌入PHP代码?

58
function jst()
{
    var i = 0;
    i = <?php echo 35; ?>
    alert(i);
}

请提供更好的方法。

9个回答

124

如果您的整个JavaScript代码都由PHP处理,那么您可以像这样做。

如果您有单独的.js文件,并且不希望PHP处理它们(例如出于缓存原因),那么您可以在JavaScript中传递变量。

例如,在您的index.php(或您指定布局的任何位置),您将执行以下操作:

<script type="text/javascript">
    var my_var = <?php echo json_encode($my_var); ?>;
</script>

你可以在JavaScript文件中使用my_var

使用这种方法还可以传递除简单整数值之外的其他值,因为json_encode()也可以正确处理数组、字符串等,并将它们序列化为JavaScript可以使用的格式。


28

如果您将JavaScript代码放在PHP文件中,那么可以这样做,否则不行。例如:

page.php(这将起作用)

function jst()
{
    var i = 0;
    i = <?php echo 35; ?>;
    alert(i);
}

page.js(这样是行不通的)

function jst()
{
    var i = 0;
    i = <?php echo 35; ?>
    alert(i);
}

4

PHP必须在服务器上解析。而JavaScript在客户端浏览器中运行。

如果将PHP代码放在.js文件中,除非您可以告诉服务器在发送到客户端之前解析要作为.js的文件,否则将无法正常工作。而告诉服务器这件事情是世界上最简单的事情:只需在文件名末尾添加.php即可。

因此,您可以将它命名为javascript.php。或者,为了知道这个文件的主要用途,您可以将其命名为javascript.js.php——服务器将认为它是.php文件并将其解析。


3
这是您需要放置在JavaScript文件顶部的代码:
<?php
    header('Content-Type: text/javascript; charset=UTF-8');
?>

(function() {
    alert("hello world");
}) ();

2

你的理解基本正确,唯一的区别是我会将JavaScript代码分离到一个外部静态文件中。然后你只需要在实际的PHP页面中定义变量或调用函数:

<script type="text/javascript>
    function_in_other_file(<?php echo my_php_var; ?>);
</script>

2

是的,只要您将JavaScript代码嵌入到PHP文件中即可。


1
一个小的演示可以帮助你: 在 abc.php 文件中:
<script type="text/javascript">
    $('<?php echo '#'.$selectCategory_row['subID']?>').on('switchChange.bootstrapSwitch', function(event, state) {
        postState(state,'<?php echo $selectCategory_row['subID']?>');
    });
</script>

甚至更美观的jQuery/PHP选择器:$('<?php echo "#$selectCategory_row[subID]"?>') - omikes

0

这里是一个例子:

html_code +="<td>" +
            "<select name='[row"+count+"]' data-placeholder='Choose One...' class='chosen-select form-control' tabindex='2'>"+
                "<option selected='selected' disabled='disabled' value=''>Select Exam Name</option>"+
                "<?php foreach($NM_EXAM as $ky=>$row) {
                echo '<option value='."$row->EXAM_ID". '>' . $row->EXAM_NAME . '</option>';
               } ?>"+
            "</select>"+
        "</td>";

或者

echo '<option value=\"'.$row->EXAM_ID. '\">' . $row->EXAM_NAME . '</option>';

-3

我们不能在JavaScript中使用PHP,因为PHP运行在服务器上,而JavaScript运行在客户端。

但是,我们可以使用所有的PHP特性,包括从HTML中转义,生成JavaScript代码以及HTML。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接