将数组从PHP传递到JQuery json_encode

时间:2016-01-28 13:08:17

标签: javascript php jquery

我有一个由php生成的HTML表单,其中包含凭证提供商的下拉列表。

我想选择提供商并填写表格进行编辑。

这是我的JQuery代码:

$(document).ready(function() { 
    $(document).on('change','#id_voucherprovider',function(){
        var voucher_providers = <?php echo json_encode($voucher_providers); ?>;

        //The value I have got from the drop down is....
        var value = $('#id_voucherprovider option:selected').val();
        var vendortext = $('#id_voucherprovider option:selected').text();
        //so the voucher provider is
        alert(vendortext);

        $('.ftext input').val(vendortext);
        $("textarea#id_vendornotes").val(voucher_providers[value]);
    });
}); 

voucherproviders没有被传递到JQuery,尽管echo json_encode($voucher_providers);代码在与php代码内联时工作。

似乎返回一个空数组。任何人都可以看到有什么问题吗?

非常感谢

戴夫

4 个答案:

答案 0 :(得分:1)

var voucher_providers = <?php echo json_encode($voucher_providers); ?>;

json_encode返回一个字符串,除非它被解析,否则它将无法使用。使用JQuery .parseJSON,你应该有更好的结果。 :)

var jsonString = <?php echo json_encode($voucher_providers); ?>;
var voucher_providers = $.parseJSON(jsonString);

答案 1 :(得分:1)

试试这个(注意引号):
var voucher_providers = JSON.parse('<?php echo json_encode($voucher_providers); ?>');

答案 2 :(得分:0)

解析你的json ex:obj = JSON.parse(data);

答案 3 :(得分:0)

您好请检查以下网站的json格式: -

http://jsonlint.com/

并检查这是否正常。