发送PHP json_encode数组到jQuery不起作用

So I want to send a PHP array to jQuery but it's not working and I don't know why. Can someone help me out?

Here is the PHP:

$var1 = "hello";
$var2 = "world";
$values = array('value1'=>$var1,'value2'=>$var2);
echo (json_encode($values));

And the jQuery:

$.get("test.php", function(values){
var jsonValues = $.parseJSON(values);
$("showValue1").html(jsonValues.value1);
});

I figured it out on my own! It's probably not the best way (I am just a beginner in this stuff) but it works.

So I was trying to put the data from my database into an array. The code in my original post was just a sample version because I wanted to try the code first.

This is what I came up with. The PHP:

$array = array();

while($row = mysql_fetch_assoc($rs)){     //$rs is mySQL query
    $array[] = $row;
}

echo $array[0]['post']. '&';       //post is the column name from my database
echo $array[1]['post']. '&';
echo $array[2]['post'];

With Ajax I did this (thanks to stefanz!):

 $.ajax({
    method:    'GET',
    url:       'test.php',
    cache:     false,
    success:   function(data){
       var tmp = data.split("&");
       $('#showValue1').html(tmp[0]);
       $('#showValue2').html(tmp[1]);
       $('#showValue3').html(tmp[2]);
    }
});

Thanks everybody for helping me out! It lead me to the code I am using now.

I think you didn't include the index of the json object. Try to used this :

$.get("test.php", function(values){
var jsonValues = $.parseJSON(values);
$("showValue1").html(jsonValues[0].value1);
});

Update this answer as of 06/10/2015 09:42AM GMT+8.

If this code also has an error, return the code to this jsonValues.value1. I think this will be the solution. You haven't an error parsing the JSON. I think your error is on this part $("showValue1"). JQuery doesn't know what element is that. You can try this if your container is an ID : $("#showValue1") and else if it is class $(".showValue1")

For example your element is:

<div id="showValue1"></div>

Then your jquery is :

$.get("test.php", function(values){
    var jsonValues = $.parseJSON(values);
    $("#showValue1").html(jsonValues.value1);
});

I tested your php code and it checks out. I think you actually have some syntax errors with your JQuery code.

$("showValue1").html(jsonValues.value1);

most likely should have been one of

$("#showValue1")[0].html(jsonValues.value1);
$(".showValue1")[0].html(jsonValues.value1);

JQuery uses # and . to indicate an element's id and it's class repectively. the [0] is because it returns an array of every element that matches on the page and I assume you only want to match the first one, maybe not though. Check out this overview of jquery selectors: http://www.w3schools.com/jquery/jquery_ref_selectors.asp

You also can try doing stuff like :

$.ajax({
    url : 'test.php',
    method : 'GET',
    dataType : 'json',
    success : function( data ){
        var data = JSON.parse( data );
        $('#showValue1').html( data.value1 );
    }
});

Get more documentation here, it should not be a hard task. Just make sure your path to test.php is the right one and also is a good practice to exit() your php file