我想将 php 变量传递给 javascript 变量。 当我点击错误时,它会在“console.log(data)”下显示一条红线 但它在控制台窗口中引发错误 -
<块引用>未捕获的语法错误:意外的标识符
我是 JavaScript 新手。
Javascript:
<script>
$('#clientName').on('change', function() {
var clientname = $(this).val();
var clientid = $('#clients-list option[value=' + clientname +']').attr('id');
var data = [];
data = <?= $client_data ?>
console.log(data);
});
</script>
PHP 变量 ( $client_data ) :
Array
(
[0] => Array
(
[id] => 1
[client_name] => John Doe
[client_shop_street] => Baker Street
[client_city_town] => California
[client_pincode] =>
[client_desc] => hello1
[client_contact1] => 1234567890
[client_contact2] => 1111111111
[client_email] =>
[client_total_amt] => 45000
[client_paid_amt] => 37000
[created_at] =>
[updated_at] => 2021-06-21 18:39:54
[created_by] => 1
)
[1] => Array
(
[id] => 2
[client_name] => Tom Jerry
[client_shop_street] => Wall Street
[client_city_town] => New York
[client_pincode] =>
[client_desc] => testing demo
[client_contact1] => 2222222222
[client_contact2] => 3333333333
[client_email] =>
[client_total_amt] => 45000
[client_paid_amt] => 37000
[created_at] =>
[updated_at] => 2021-06-21 23:32:12
[created_by] => 1
)
)
答案 0 :(得分:0)
要以在 JavaScript 中有意义的格式公开 PHP 对象,您需要以 JavaScript 友好的格式对其进行编码。最简单的就是使用json,不需要任何特殊解析就可以被JavaScript解析。
在您的 PHP 文件中:
<script>
$('#clientName').on('change', function() {
var clientname = $(this).val();
var clientid = $('#clients-list option[value=' + clientname +']').attr('id');
var data = [];
data = <?= json_encode($client_data) ?>
console_data(data);
});
</script>
json_encode
docs
答案 1 :(得分:0)
代码中的两个问题:
在使用 PHP 数组作为 JS 变量的值时使用 json_encode
。
data = <?json_encode($client_data) ?>
我认为应该是console.log(data)
答案 2 :(得分:0)
[已解决] PHP 代码遗漏单引号。
<script>
$('#clientName').on('change', function() {
var clientname = $(this).val();
var clientid = $('#clients-list option[value=' + clientname +']').attr('id');
var data = [];
data = '<?php echo json_encode($client_data) ?>'
console.log(data);
});