javascript inside php wordpress


javascript inside php wordpress

很抱歉出现基本问题,只是对这里发生的事情有点困惑。我在Wordpress中运行了一些PHP,我可以在一个文件中运行html、PHP和javascript。例如:

<?php
//query WP for the tag
$wp_getTag = $wpdb->get_results( 
    "
    SELECT name 
    FROM $wpdb->mydb_wor1.ukj_terms 
    INNER JOIN ukj_term_taxonomy
    ON (
        ukj_terms.term_id = ukj_term_taxonomy.term_id
        )
    WHERE ukj_term_taxonomy.taxonomy LIKE 'post_tag'
    " 
);
$json = json_encode($wp_getTag);
?>
<script type="text/javascript"> 
// pass the value to js
var JsonTags = <?php echo $json ?>;
</script>

所以以上所有的方法都有效。我从wp中获取一些信息,然后使用echo将其值分配给JS变量。但目前还不清楚这里发生了什么?Javascript是在服务器上而不是在客户端上运行的吗?

否,JavaScript正在客户端上运行。PHP正在服务器上运行。也就是说,此代码在服务器上运行:

<?php echo $json ?>

对该代码的求值将导致一个字符串被发送到输出所在位置的客户端。因此,如果变量$json包含字符串"{'value':'helloworld'}",则此代码将在客户端上运行:

var JsonTags = { 'value' : 'hello world' };

首先,所有的服务器端代码都会运行,这最终会导致对客户端的响应。一旦客户端接收到该响应,所有客户端代码都会运行。

服务器将信息输出到客户端,因此函数名为"echo"(它从服务器回声到客户端)。

您可以将服务器端代码混合到客户端代码中,因为它首先由服务器处理,这就是为什么您不能(如果不使用Ajax)使用Javascript来实现服务器端代码的原因。