我知道这是一个常见问题,但我的情况有所不同。下面是我的代码在JavaScript函数中传递PHP变量
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/?&callback=true&event_type={url}&mode=offline";
alert(off_url);
}
}
我现在面临的问题是我想通过“ $ mode“变量”'js'=>'onchange = set_filter('。$ mode。')'“函数作为参数。但它表示在脚本中未定义为alert。如何传递变量?
我想通过变量$模式在PHP中的条件。查看onchange功能。我需要传递变量作为参数。 –
你必须记住你正在生成JavaScript代码。无论什么PHP输出在JS引擎遇到它时都必须有效。 ''some_js_func(<?php echo'foo'?>)'会生成'some_js_func(foo)'...除非在该范围内有一个名为'foo'的变量,否则这个代码将会失败并显示未定义的变量。 'some_js_func('<?php echo'foo'?>');'(注意额外的'''引号......)会起作用:'some_js_func('foo')'。 –