2016-01-28 101 views
2

我有一个由php生成的HTML表单,它有一个凭证提供程序的下拉列表。将数组从PHP传递到JQuery json_encode

我想选择提供者,并填写表单进行编辑。

这里是我的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代码。

它似乎返回一个空数组。任何人都可以看到什么是错的?

非常感谢

戴夫

+1

试试这个'无功voucher_providers =“';' – Haridarshan

+1

如果您查看源代码,您是否看到json数组? – Foon

回答

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); 
0

解析您的JSON例如:OBJ = JSON.parse(数据);

0

你好,请在以下网站查询JSON格式: -

http://jsonlint.com/ 

,并检查,这是好的。

1

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