javascript - 在 PHP 和 Javascript 之间传递数组数据是未定义的
问题描述
我有一个关联的 PHP 数组,我需要在 Javascript 中访问以检查manufacturer
. 我目前在页面上输出这个内联,然后读入一个单独的 JS 文件。
<?php
$carsData = array();
foreach ($cars as $car) {
$carsData[] = ['id' => $car->id, 'title' => $car->title, 'manufacturer' => $car->manufacturer];
}
$carsDataString = json_encode($carsData);
?>
<script>
carsData = <?php echo $carsDataString . ';';?>
</script>
到目前为止,这有效 - 源代码完全符合我的预期:
carsData = [{"id":2,"title":"Astra","manufacturer":"2"},{"id":3,"title":"Tepee","manufacturer":"3"},{"id":4,"title":"C4 Grand","manufacturer":"4"},{"id":5,"title":"Civic","manufacturer":"5"},{"id":6,"title":"Jazz","manufacturer":"5"}];
在我迄今为止在 JS 中阅读此内容的微弱尝试中,我有以下内容:
$.each(carsData, function(key, value) {
console.log(key['manufacturer']);
});
在我的控制台中,这是输出undefined, undefined, undefined, undefined
. 如果我carsData
在控制台中执行,我会完全按照我的预期看到对象。
那么我做错了什么?我需要能够接受并执行以下操作:
$.each(carsData, function(key, value) {
if (key['manufacturer'] = 5 {
$('#manufacturer' + key['manufacturer'].show();
}
});
请注意,我已将其简化为“5”的值,因为该值实际上来自另一个脚本,并且按我的预期在那里打印 5。
解决方案
要使 js 有效,您需要在;
此行的末尾添加一个
carsData = <?php echo $carsDataString;?>;
推荐阅读
- jenkins - 如何根据所需凭据的用户名部分在管道中获取 Jenkins 凭据?
- linux - 用 bash 总结
- gmail-api - Gmail 转发 api 说禁止
- python - 在 django-python 中迁移我的数据库时出现错误
- sql - Powershell - 将单独的数组值导入列
- python - 如何使用 alembic 运行修订?
- windows - 在信息亭模式下手动更新 Windows 应用程序不起作用
- amazon-web-services - .net 核心框架是否支持 redshift?
- firebase - 如果没有匹配的数据,Firebase 实时数据库会触发“null”错误
- kubernetes - 即使指定了 cpu 限制,在 pod 部署期间出现“必须指定 limits.cpu”错误