我知道這是一個常見問題,但我的情況有所不同。下面是我的代碼在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')'。 –