Dave Emsley
Dave Emsley

Reputation: 65

Passing Array From PHP to JQuery json_encode

I have an HTML form generated by php which has a dropdown of voucherproviders.

I want to select the provider and have this populate the form for editing.

Here is my JQuery code:

$(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 is not being passed into the JQuery despite the echo json_encode($voucher_providers); code working when inline with the php code.

It seems to return a null array. Can anyone see what is wrong?

Many Thanks

Dave

Upvotes: 2

Views: 833

Answers (4)

trank
trank

Reputation: 1012

try this (note the quotes):
var voucher_providers = JSON.parse('<?php echo json_encode($voucher_providers); ?>');

Upvotes: 1

Cal Irvine
Cal Irvine

Reputation: 1144

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

json_encode returns a string, unless it is parsed it will not be usable. Use JQuery .parseJSON and you should have better results. :)

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

Upvotes: 1

Deepak Dholiyan
Deepak Dholiyan

Reputation: 1912

Hi please check the json format at below site:-

http://jsonlint.com/

and check if this is fine.

Upvotes: 0

Sarjerao Ghadage
Sarjerao Ghadage

Reputation: 1544

parse your json ex: obj = JSON.parse(data);

Upvotes: 0

Related Questions