通过HTML文件将参数从服务器端传递到Javascript

时间:2011-12-24 17:12:38

标签: php javascript jquery codeigniter

如果服务器端(Codeigniter控制器)将这些参数提供给HTML,如何将参数从HTML文件传递到外部Javascript文件?

换句话说,我有一些参数,我想从服务器端PHP / Codeigniter传递到Javascript文件。

PHP / Codeigniter Serverside Code

function view($id) {

    $data['id'] = $id;    // this is the variable I want to pass to Javascript

    $this->load->view('index', $data);

}

HTML

<html>
    <head>
        <script type="text/javascript" src="./js/targetfile.js"></script>
    </head>
    <body>
        <?php echo $id; ?> //this is how I can retrieve the variable from serverside
...

Javascript(targetfile.js)

var id = id_from_serverside;  // This is where I want the serverside $id to go

其他信息:

变量$id从网址中抓取,因此对于http://www.domain.com/view/1234,服务器端变量$id将设置为值1234。然后必须将此1234值传递给javascript文件(它将AJAX调用回服务器端以从数据库中检索数据)

3 个答案:

答案 0 :(得分:3)

你应该能够做到这一点:

<script type="text/javascript>
var id = <?php echo $id; ?> //this is how I can retrieve the variable from serverside
</script>
<script type="text/javascript" src="./js/targetfile.js"></script>

答案 1 :(得分:1)

这个怎么样:

HTML

<html>
    <head>
        <script type="text/javascript" src="./js/targetfile.js"></script>
    </head>
    <body>
        <input type="hidden" id="my_id" value="<?= $id ?>" />
...

的JavaScript

var id = $('#my_id').val();

试试这个:

PHP / Codeigniter Serverside Code

function view($id) {
    echo $id;
}

的JavaScript

$.get('/mycontroller/view', function(data) {
    alert(data);
}, 'html');

略过<html><head>...内容。只需打印您需要的数据。然后通过AJAX获取数据。

答案 2 :(得分:1)

您可以将参数作为JSON对象发送:

<?php 
    $object = array("foo" => "bar", 12 => true); 
    $encoded_object = json_encode($object); 
    echo '<script>var _page_params = '.$encoded_object.';</script>';
?> 

将输出类似* *

的内容
<script>var _page_params = {"foo": "bar", "12": "true"};</script>

免责声明:此机器上没有PHP,因此可能存在拼写错误;)