javascript - 将 PHP 变量传递给 JavaScript 控制台错误
问题描述
我在脚本中遇到了一些障碍。我一直在使用以下代码PHP
将变量发送到我的Javascript
文件中,以与价格滑块一起使用。
.php
<div class="border p-4 rounded mb-4">
<div class="mb-4">
<h3 class="mb-3 h6 text-uppercase text-black d-block">Price</h3>
<div id="slider-range" class="border-primary"></div>
<input type="text" name="text" id="amount" data-path="/<?= $foo['uri']['path']['controller']; ?>/<?= $foo['uri']['path']['method']; ?>/<?= $foo['uri']['path'][0]; ?>/<?= $foo['uri']['path'][1]; ?><?php if ($foo['uri']['path']['controller'] != 'store'): ?>/<?= $foo['uri']['path'][2]; ?>/<?= $foo['uri']['path'][3]; ?><?php endif; ?>" data-floor="<?= floor($first['min_sale_price'] / 5) * 5; ?>" data-ceil="<?= ceil($first['max_sale_price'] / 5) * 5; ?>" data-query="?<?php if (isset($foo['uri']['query']['term'][0])): ?>term=<?= urlencode($foo['uri']['query']['term'][0]); ?>&<?php endif; ?>view=<?= $foo['uri']['query']['view'][0]; ?>&sort=<?= $foo['uri']['query']['sort'][0]; ?>&show=<?= $foo['uri']['query']['show'][0]; ?>" class="form-control border-0 pl-0 bg-white" disabled="" />
</div>
</div>
.js
const sp = document.querySelector('#amount');
var siteSliderRange = function() {
$("#slider-range").slider({
range: true,
min: 0,
max: sp.dataset.ceil,
values: [ sp.dataset.floor , sp.dataset.ceil ],
slide: function(event, ui) {
$("#amount").val("£" + ui.values[0] + " - £" + ui.values[1]);
},
change: function( event, ui ) {}
});
$( "#slider-range" ).on( "slidechange", function( event, ui ) {
window.location.href = sp.dataset.path + "/" + ui.values[0] + "/" + ui.values[1] + sp.dataset.query;
});
$("#amount").val("£" + $("#slider-range").slider("values", 0) +
" - £" + $("#slider-range").slider("values", 1));
};
siteSliderRange();
它工作得很好,除了 silder 代码没有出现在我的主页上并且我收到以下错误:
Uncaught TypeError: Cannot read property 'dataset' of null at HTMLDocument.<anonymous>
我和if
围绕函数的声明,它工作得很好......除了 Webpack 再次删除它。
我已经考虑将变量直接实现到 Javascript 文件中(因为这适用于每种情况) - 但我似乎无法正确使用语法......
我试图定义以下变体,然后是 aconsole.log
来检查值,我得到以下信息:
var ceil = <?= ceil($first['max_sale_price'] / 5) * 5; ?> // Uncaught SyntaxError: Unexpected token '<'
var ceil = <?php echo ceil($first['max_sale_price'] / 5) * 5; ?> // Uncaught SyntaxError: Unexpected token '<'
var ceil = "<?= ceil($first['max_sale_price'] / 5) * 5; ?>" // Prints: <?= ceil($first['max_sale_price'] / 5) * 5; ?>
我怎样才能做到这一点?PHP 变量绝对是一个数字,而不是字符串。
解决方案
推荐阅读
- javascript - 不和谐机器人——节点 index.js 问题——“客户端未定义”
- java - 连接到 MongoDB URI 时出错,即使我可以使用 compassdb 或机器人 t3 工具
- python - 处理 Python 分页 API 请求中的最后一页
- python - 如何修改存储在列表中的一列numpy数组
- karate - 识别 JSON 属性的唯一性
- ios - AVAudioEngine - 更改 inputNode 的音频单元设备后输出格式有 0 个通道
- matlab - 如何检查系统是否有 `Simulink Coder 的许可证?
- javascript - 如何在 React 中管理组件状态(加载、错误、数据)
- vips - 带有白色背景的 libvips 中的范围图像
- omnet++ - 一个关于omnet++无线节点源码的问题