Передача переменной PHP в JavaScript по событию ONCHANGE - PullRequest
0 голосов
/ 08 марта 2012

Я хочу изменить текст метки, когда я выбираю новое значение в раскрывающемся списке.

Это мои массивы php:

$data = array(
              '1'=>array('country'=>'Philippines','capital'=>'Manila'),
              '2'=>array('country'=>'Finland','capital'=>'Helsinki'),
              '3'=>array('country'=>'India','capital'=>'Delhi') 
            );

$countries = array(1=>'Philippines', 2=>'Finland', 3=>'India');

Вот как это должно бытьотображается на странице:

    <div><?php echo form_label('Country: ', 'country'); ?></div>
    <div><?php echo form_dropdown('country',$countries,'',
                      'onChange="javascript:displayCapitalCity(?????)"'); ?></div>

    <div><?php echo form_label('Capital: ', 'capitalLabel'); ?></div>
    <div id="capcity"><?php echo form_label('','capitalcity'); ?></div>

Это javascript:

function displayCapitalCity(?????){
document.getElementById('capcity').innerHTML = '??????';
}

????? должен быть столицей выбранной страны.Как мне передать значение $ data [ индекс выбранной страны ] ['capital']?

Ответы [ 2 ]

1 голос
/ 08 марта 2012

попробуйте это:

<div><?php echo form_dropdown('country',$countries,'',
                      'onChange="javascript:displayCapitalCity(this)"'); ?></div>


var jsdata = <?php echo json_encode($data); ?>;
function displayCapitalCity(_targ){
   document.getElementById('capcity').innerHTML = jsdata[_targ.value]['capital'];
}
0 голосов
/ 08 марта 2012

Лучший способ (на мой взгляд) - перевести массив данных PHP $ в JSON, сделав его доступным на стороне клиента (например, JavaScript).

<script type="text/javascript">
<?php printf('var countriesData = %s;', json_encode($data)) ?>
function displayCapitalCity(index) {
    document.getElementById('capcity').innerHTML = countriesData[index].capital;
}
</script>

Просто убедитесь, что вы переходите направильный индекс, соответствующий массиву $ data.

Если вы используете CodeIgniter, onChange должен выглядеть так:

onchange="javascript:displayCapitalCity(this.value)"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...