如果服务器端(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调用回服务器端以从数据库中检索数据)
答案 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>
<head>
<script type="text/javascript" src="./js/targetfile.js"></script>
</head>
<body>
<input type="hidden" id="my_id" value="<?= $id ?>" />
...
var id = $('#my_id').val();
试试这个:
function view($id) {
echo $id;
}
$.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,因此可能存在拼写错误;)