Передача параметров из серверной части в Javascript через файл HTML - PullRequest
1 голос
/ 24 декабря 2011

Как передать параметры из файла HTML во внешний файл Javascript, если эти параметры предоставляются в HTML на стороне сервера (контроллер Codeigniter)?

Другими словами, у меня есть параметры, которые я хочуперейти от серверного PHP / Codeigniter к файлу Javascript.

PHP / Codeigniter серверный код

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 являетсязахватил URL, поэтому для http://www.domain.com/view/1234 серверной переменной $id будет установлено значение 1234.Это значение 1234 затем должно быть передано в файл javascript (который AJAX вызывает обратно на сервер для получения данных из базы данных)

Ответы [ 3 ]

3 голосов
/ 24 декабря 2011

Вы должны просто сделать это:

<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 голос
/ 24 декабря 2011

Вы можете отправить параметры в виде объектов 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, поэтому возможны опечатки ;)

1 голос
/ 24 декабря 2011

Как насчет этого:

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 Код сервера

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

JavaScript

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

Пропустить <html><head>... материал.Просто распечатайте нужные данные.Затем получите данные через AJAX.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...