how to pass these strings from php to javascript

后端 未结 5 1595
轮回少年
轮回少年 2020-12-20 07:25

i have 4 strings in my application like this that i want to pass to my js file

$a1=\'[10,20,13,14]\';
$a2=\'[17,15,14,16]\';
$a3=\'[18,24,16,17]\';
$a4=\'[15         


        
相关标签:
5条回答
  • 2020-12-20 08:03

    Use the serialize() method. Pass the variables in a input field and:

    $.post("loaddata.php", $("#ajaxform").serialize(), function(data){
      //
    });
    
    0 讨论(0)
  • 2020-12-20 08:07
    return "{ A1: '[10,20,13,14]', A2: '[17,15,14,16]', A3: '[18,24,16,17]', A4: '[15,54,18,27]' }";
    

    Though you could also just pass these as actual arrays by removing the quotes.

    0 讨论(0)
  • 2020-12-20 08:09

    Use json_encode on the php side and pass the data back that way http://us3.php.net/manual/en/function.json-encode.php

    0 讨论(0)
  • 2020-12-20 08:24
    $a1='[10,20,13,14]';
    $a2='[17,15,14,16]';
    $a3='[18,24,16,17]';
    $a4='[15,54,18,27]';
    
    echo $a1.",".$a2.",".$a3.",".$a4;
    

    will return

    [10,20,13,14],[17,15,14,16],[18,24,16,17],[15,54,18,27]
    

    this is not a valid JSON string.

    You can return an object that contains an array of arrays like this:

    echo "[".$a1.",".$a2.",".$a3.",".$a4."]";
    // => [[10,20,13,14],[17,15,14,16],[18,24,16,17],[15,54,18,27]]
    

    or you can do return an object with named keys to access the different arrays.

    echo "{a1:".$a1.",a2:".$a2.",a3:".$a3",a4:".$a4."};
    // => {a1:[10,20,13,14], a2:[17,15,14,16], a3:[18,24,16,17], a4:[15,54,18,27]}
    

    Or even much butter: Don't build the JSON String on your own and use PHP's json_encode instead:

    $a1=array(10,20,13,14);
    $a2=array(17,15,14,16);
    $a3=array(18,24,16,17);
    $a4=array(15,54,18,27);
    
    echo json_encode(array($a1,$a2,$a3,$a4));
    // => [[10,20,13,14],[17,15,14,16],[18,24,16,17],[15,54,18,27]]
    // or if you want an associative array
    echo json_encode(array("a1" => $a1, "a2" => $a2, "a3"=> $a3, "a4" => $a4));
    // => {a1:[10,20,13,14], a2:[17,15,14,16], a3:[18,24,16,17], a4:[15,54,18,27]}
    
    0 讨论(0)
  • 2020-12-20 08:30

    Encode them as JSON.

    On the PHP side:

    echo json_encode(array("a1" => $a1, "a2" => $a2, "a3" => $a3, "a4" => $a4));
    

    On the JavaScript side:

    $.ajax({
        type: "POST",
        dataType: "json",
        url: "loaddata.php",
        success: function(data) {
            var a1=data.a1;
            var a2=data.a2;
            var a3=data.a3;
            var a4=data.a4;
            // do something with a1, a2, a3 and a4
        }
    });
    

    And if you want a1, a2, a3, and a4 to be arrays of numbers instead of strings containing numbers, just JSON decode the strings on the PHP side before sending them over:

    echo json_encode(array(
        "a1" => json_decode($a1),
        "a2" => json_decode($a2),
        "a3" => json_decode($a3),
        "a4" => json_decode($a4)
    ));
    
    0 讨论(0)
提交回复
热议问题