Выбранный переключатель отобразит соответствующий список городов в раскрывающемся списке. Например, при выбранном переключателе «Онтарио» появится раскрывающийся список с соответствующими городами (в этом примере «Регион» – это Онтарио, а идентификатор – 77).
Все PHP-функции, циклы и код JavaScript, приведенные ниже в примере, работают правильно:
<script type="text/javascript"> $(document).ready(function(){ $('#locationTree input:radio').change(function() { var buttonPressed = $('input:radio[name=Region]:checked').val(); if(buttonPressed == 77) { var listCities = $("select[name='City']"); <?php View::newInstance()->_exportVariableToView(77); ?> <?php while(has_list_cities()) { ?> $("<option><?php echo list_city_name(); ?></option>").appendTo(listCities); <?php } ?> } }); }); </script>
Чтобы получить список городов по разным регионам, а не конкретно до 77, я могу немного изменить код PHP следующим образом:
<?php View::newInstance()->_exportVariableToView($regionCode); ?>
и поскольку переменная 'buttonPressed' обнаруживает выбранный идентификатор 'Region', я могу добавить следующий простой скрипт:
<?php $regionCode = "<script>document.write(buttonPressed)</script>"; ?>
После изменения:
var listCities = $("select[name='City']"); <?php $regionCode = "<script>document.write(buttonPressed)</script>"; ?> <?php View::newInstance()->_exportVariableToView($regionCode); ?>
Я знаю, что PHP работает на стороне сервера, а JavaScript работает на стороне клиента, но я думал, что мое простое решение для обмена переменными между PHP и JavaScript должно работать … но это не работает. Я действительно прошу кого-то помочь мне заставить его работать.
Обменные переменные (отделить к клиенту) с помощью свойств атрибутов данных HTML 5. Я делаю это для загрузки начальной страницы.
Чтобы обменять переменные после начальной загрузки страницы, можно использовать вызовы ajax.
пример атрибута данных
HTML через PHP Write
<div id='universals' data-path='/zz/' data-load='1'></div>
JavaScript
var data_dom = $('#universals')[0], key, universals = []; for (key in data_dom.dataset) { universals[key] = data_dom.dataset[key]; }