使用PHP将数组从PHP传递到javascript

时间:2013-03-27 16:45:26

标签: php javascript ajax jquery

有人可以帮助我如何从PHP传递值数组并使用AJAX检索它。我发现只是从PHP传递一个值。当我尝试传递数组的值时,我不知道如何在AJAX端接收它

这是我的PHP代码:

$success[];
$timeout[];
$fail[];

while($row1 = mysql_fetch_array($masterresult))
{
    $success[]=$row1[1];
    $timeout[]=$row1[2];
    $fail[]=$row1[3]; 
}

echo json_encode(array("a"=>$success,"b"=>$timeout,"c"=>$fail));

以下是AJAX电话:

var channel;
 function overall(){
    $(".one").show();
    $(".two").hide();
    $(".three").hide();
    $(".four").hide();
    window['channel']="overall";
     $.ajax({
             type:"GET",
             url:"dash2.php",
             data:{channel:channel},
             dataType:'json',
             success:function(data){
                    console.log(data.a);
                    console.log(data.b);
                    console.log(data.c);
                    }
            });
    }

我应该如何将这些php数组值传递给此ajax调用?有人可以帮我处理代码

5 个答案:

答案 0 :(得分:2)

您要做的是encode it as JSON

$yourArray = array('asdf', 'qwer', 'zxcv');
echo 'var yourJavaScriptArray = ' . json_encode($yourArray) . ';';

这使得您的所有任意数据也可以安全地用于JavaScript。

如果您只使用AJAX执行此操作,则不需要var部分。只需直接从json_encode()输出。

答案 1 :(得分:2)

例如,无论是数组中的一个值还是多个值,都应始终使用:

json_encode($your_php_var)

答案 2 :(得分:0)

  1. json_encode你的数组在PHP端。
  2. 在JavaScript中使用该JSON对象而不需要任何额外的努力,它是JavaScript的一部分。
  3. 当您将它发送回PHP时,只需json_decode PHP。
  4. 参考:PHP Manual

答案 3 :(得分:0)

您可以将JSON与jQuery结合使用。

<?php

    $myArray = array('a', 'b');
    echo json_encode($myArray);

?>

的Ajax

$.get('http://localhost/index.php',
    function(data) {
        var response = jQuery.parseJSON(data);
        console.log(response);
    }
);

在您的代码中:

 var channel;
 function overall(){
    $(".one").show();
    $(".two").hide();
    $(".three").hide();
    $(".four").hide();
    window['channel']="overall";
    $.ajax({
             type:"GET",
             url:"dash2.php",
             data:{channel:channel},
             dataType:'json',
             success:function(data){
                    console.log(data["a"]);
                    console.log(data["b"]);
                    console.log(data["c"]);
            }
    });
 }

答案 4 :(得分:0)

希望这个例子对你有所帮助。想象一下,如果您在html表单上有一些输入数据并需要通过AJAX发送它们,请在服务器端对它们执行一些操作,并在客户端重新获取结果并使用它做一些事情。

 <form id="my_form" method="post" action="<?=$ServerSideUrl?>">
   <input type="text" name="field_1" value="">
   <input type="text" name="field_2" value="">
   <input type="text" name="field_3" value="">
 </form>

这是你的AJAX脚本,我在这个例子中使用了JQuery

$('#my_form').ajaxSubmit({
        dataType: 'html',
        error: function() {
          alert('some error text');
        },
        complete: function(data) {
          //data this is the result object which returned from server side
          //for example you shpold alert the sum of thouse 3 field
          alert(data.sum);
        }
});

这是您的服务器端代码

 <? 
   $data = array();
   $data["sum"] = $_POST["field_1"] + $_POST["field_2"] + $_POST["field_3"];
   echo my_json_encode($data);
   return true;
 ?>

因此,当您的AJAX完成时,它会提醒您表单中三个字段的总和