相关疑难解决方法(0)

如何将变量和数据从PHP传递给JavaScript?

我在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)

javascript php

642
推荐指数
12
解决办法
72万
查看次数

将PHP字符串传递给JavaScript变量(并转义换行符)

编码PHP字符串以输出到JavaScript变量的最简单方法是什么?

我有一个PHP字符串,其中包括引号和换行符.我需要将此字符串的内容放入JavaScript变量中.

通常,我只是在PHP文件中构建我的JavaScript,àla:

<script>
  var myvar = "<?php echo $myVarValue;?>";
</script>
Run Code Online (Sandbox Code Playgroud)

但是,当$myVarValue包含引号或换行符时,这不起作用.

javascript php newline escaping

375
推荐指数
7
解决办法
31万
查看次数

当返回的JSON中有双引号时,JavaScript会中断

我有一些简单的代码从我的数据库中提取一些值,然后将这些数据作为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)

javascript php json

6
推荐指数
0
解决办法
78
查看次数

PHP输出JSON Web Service charset UTF-8错误

我正在通过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)

php encoding json web-services hebrew

5
推荐指数
1
解决办法
4万
查看次数

标签 统计

php ×4

javascript ×3

json ×2

encoding ×1

escaping ×1

hebrew ×1

newline ×1

web-services ×1