Передайте переменную PHP в функцию JavaScript [duplicate]

0

Я знаю, что это частый вопрос, но мое дело другое. Вот мой код

PHP

if($mode == "All" || $mode == 'Offline')
        {
                echo "<label>By categories :</label>";
                echo elgg_view('input/pulldown',array(
                        'options' => $options_values,
                        'internalname' => 'event_type',
                        'value' => get_input('event_type'),
                        'js' => 'onchange = set_filter('. $mode .')','internalid' => 'event_cat'

                ));
        }

В том же файле я написал скрипт

Java-скрипт

function set_filter(mode){

    var url = $('#event_cat option:selected').val();
    alert(mode);    
    if ( mode == "Offline"){
    var off_url = <?php $vars['url'] ?>"pg/event_calendar/filter/?&amp;callback=true&event_type={url}&mode=offline";
    alert(off_url);
    }

}

Проблема, с которой я столкнулся, - это передать переменную "$ mode" в функцию "'js' => 'onchange = set_filter ('. $ Mode. ')'" В качестве аргумента. Но это говорит о неопределенности как предупреждение в скрипте. Как передать переменную?

Теги:
elgg

3 ответа

0

Попробуй это

'js' => 'onchange = set_filter("'. $mode .'")'
  • 0
    НЕТ приятель, я пытался, как это, но не работает ..
  • 0
    Вы проверили значение параметра, переданного в set_filter, когда он вызывается с помощью firebug?
Показать ещё 4 комментария
0

Вам нужно echo вашу переменную php:

var off_url = "<?php echo $vars['url']; ?>pg/event etc...";

Как и ваш код - это просто другая версия

<?php
true;

который ничего не делает, кроме как втянуть немного времени процессора.

Кроме того, будьте ЧРЕЗВЫЧАЙНЫ осторожны при прямом демпинге данных из PHP в контекст javascript. Если у вас есть любые метасимволы javascript в выходных данных, вы рискуете ввести синтаксическую ошибку. В общем, вы всегда должны использовать json_encode() все, что json_encode() PHP, но это также зависит от того, как вы вставляете данные PHP в блок кода JS.

  • 0
    Я хочу передать переменную $ mode в php в условии. Смотрите функцию onchange. Мне нужно передать переменную в качестве аргумента.
  • 0
    Вы должны помнить, что вы генерируете код JavaScript. Независимо от того, какие выходные данные PHP должны быть действительны, когда движок JS сталкивается с этим some_js_func(<?php echo 'foo' ?>) собирается сгенерировать some_js_func(foo) ... если в этой области нет переменной с именем foo , этот код завершится ошибкой с неопределенной переменной. some_js_func('<?php echo 'foo' ?>'); (обратите внимание на дополнительные ' кавычки ...) будет работать: some_js_func('foo') .
0

Попробуйте

var off_url = "<?php $vars['url'] ?>pg/event_calendar/filter/?&amp;callback=true&event_type={url}&mode=offline";

И в вашем js pass будет как

'js' => 'onchange = set_filter("'. $mode .'")'
  • 0
    Я хочу передать переменную $ mode в php в условии. Смотрите функцию onchange. Мне нужно передать переменную в качестве аргумента.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню