我相信我已经正确地将我的脚本排队并本地化了-我已经在DOM中显示了$q。现在我确信我错过了访问JS函数中变量的最后一个简单步骤。
以下是我的PHP:
add_action( \'wp_enqueue_scripts\', \'sdm_load_javascript_files\' );
function sdm_load_javascript_files() {
wp_register_script( \'showMake\', get_template_directory_uri() . \'/js/functions.js\', array(\'jquery\'), \'1.1.0\', true );
wp_enqueue_script( \'showMake\', get_template_directory_uri().\'/js/functions.js\', array( \'jquery\' ) );
$inventory_makes = get_inventory_makes();
wp_localize_script( \'showMake\', \'q\', $inventory_makes );
}
function get_inventory_makes() {
global $wpdb;
$inventory_makes = $wpdb->get_results
("
SELECT COUNT(inventory_id) as count_car, inventory_make
FROM wp_dsfbjd_wpinventory_item
GROUP BY inventory_make
");
return $inventory_makes;
}
这是我的模板的一部分,我认为我缺少我需要的:
<ul>
<?php
$inventory_makes = get_inventory_makes();
foreach ( $inventory_makes as $make )
{ echo \'<li><a onclick="showMake(q.inventory_make)">\',$make->inventory_make,\' (\',$make->count_car,\')\',\'</a></li>\';
}
?>
</ul>
最后,我的js函数:
function showMake() {
console.log(q.inventory_make);
}
以及DOM:
当我单击HTML元素时,我的控制台记录“未定义”-在我访问q.inventory\\u make后,我将刷新汽车列表以显示单击的make。
提前感谢您为我指明了正确的方向。