我在PHP中有一个变量,我需要在我的JavaScript代码中使用它的值.如何将我的变量从PHP变为JavaScript?
我的代码看起来像这样:
<?php
...
$val = $myService->getValue(); // Makes an API and database call
?>
Run Code Online (Sandbox Code Playgroud)
我有需要的JavaScript代码,val并且看起来如下:
<script>
myPlugin.start($val); // I tried this, but it didn't work
<?php myPlugin.start($val); ?> // This didn't work either
myPlugin.start(<?=$val?> // This works sometimes, but sometimes it fails
</script>
Run Code Online (Sandbox Code Playgroud) 编码PHP字符串以输出到JavaScript变量的最简单方法是什么?
我有一个PHP字符串,其中包括引号和换行符.我需要将此字符串的内容放入JavaScript变量中.
通常,我只是在PHP文件中构建我的JavaScript,àla:
<script>
var myvar = "<?php echo $myVarValue;?>";
</script>
Run Code Online (Sandbox Code Playgroud)
但是,当$myVarValue包含引号或换行符时,这不起作用.
我有一些简单的代码从我的数据库中提取一些值,然后将这些数据作为JSON字符串附加到按下此按钮时要使用的按钮上的数据属性中.问题是,如果从数据库返回的值之一中有双引号,我猜它会破坏JSON.
这是我的代码:
HTML:
<td
uk-toggle="target: #entry_modal"
class="alter_accessory"
data-accessory='{{ json_encode(@acc) }}'
>edit</td>
Run Code Online (Sandbox Code Playgroud)
的内容 @acc
Array
(
[uid] => 23
[title] => Lenovo 4XB0F86403 ThinkPad 512GB 2.5" Solid-State Drive
[model] => 4XB0F86403
[upc] => 888772069421
[image] => https://www.disctech.com/SCASite/product_images/4XB0F86403_1000-1.jpg
[category] => lenovo_accessory
)
Run Code Online (Sandbox Code Playgroud)
标题中注明有双引号 "
这是点击此按钮时触发的javascript:
$(".alter_accessory").on('click', function() {
var data = $(this).data('accessory');
console.log(data);
$('#entry_modal_title').text('Edit Accessory');
$.each(data, function( index, value ) {
$('#entry_' + index).val(value);
});
});
Run Code Online (Sandbox Code Playgroud)
它只是循环遍历JSON并更改每个键的输入框的值
但是,当我单击按钮时,没有输入任何输入,我收到错误:
未捕获的TypeError:无法使用'in'运算符在{"uid"中搜索"length":"23","title":"Lenovo 4XB0F86403 ThinkPad 512GB 2.5"固态驱动器","型号":"4XB0F86403", "UPC": "888772069421", "图像": "https://www.disctech.com/SCASite/product_images/4XB0F86403_1000-1.jpg", "类别": "lenovo_accessory"}
我该如何解决这个问题?
请求呈现按钮的HTML:
<td …Run Code Online (Sandbox Code Playgroud) 我正在通过PHP托管JSON输出的Web服务.
我在DB中有希伯来语数据集,我将此作为输出发布到Web服务.
当我最初发布数据时,它输出结果如下:
JSON:
{
"tasklist": [
{
"customerID": "9936",
"name": "טר ×רמה ×™×–×•× ×•×‘×™× ×•×™ בע"מ",
"cargo":"×ברר",
"destination":"מכר",
"quantity":"1.000000",
"startdate":"03/01/201300: 00: 00"
}
]
}
Run Code Online (Sandbox Code Playgroud)
但这"×ברר"可以通过Android/Iphone解析器读取并将其转换为原始希伯来语.但我遇到了错误 "name": "טר ×רמה ×™×–×•× ×•×‘×™× ×•×™ בע"מ",.其中,"在字符串之间,因此JSON是无效的,并显示错误!
为了解决这个问题我曾经UTF-8把它转换"×ברר"成希伯来语"????".但在这种情况下,问题仍然存在:
PHP:
header('Content-type:text/html; charset = UTF-8');
JSON:
{
"tasklist": [
{
"customerID": "9936",
"name": "?? ???? ???? ?????? ??"?",
"cargo":"????",
"destination":"???",
"quantity":"1.000000",
"startdate":"03/01/201300: 00: 00"
}
]
}
Run Code Online (Sandbox Code Playgroud)
但问题仍然存在:

在某些情况下,?由于使用UTF-8,我得到了这个
"name":"?????? …Run Code Online (Sandbox Code Playgroud)