将PHP数组传递给外部jQuery $ .ajax

时间:2015-05-25 21:59:15

标签: javascript php jquery ajax

基本上我想做的是获取一个包含t.php的数组,并使用带有t.php响应的JavaScript提醒它。

问题是该文件中不存在该变量... 那么,你如何将这个变量传递给JS?

我试过'return':

return $sqlData = $q->query_array_assoc();

但是不起作用。

这是我的$ .ajax代码:

<script type="text/javascript">
$(document).ready(function(){

$('#brand').change(function(e){
    console.log(e);
    $.ajax({
        method: "GET",
        url: "t.php",
        data: { type: 1, brand: this.value }
    })
    .done(function(msg){
        $('#debug').html(msg);
        var pArray = <?php echo json_encode($sqlData);?>
        for (var i = 0; i < pArray.length; i++) {
            alert(pArray[i]);
        };
});
});
</script>

注意:我已发送

data: { type: 1, brand: this.value }

验证.php文件中的switch语句,但没有问题。我从数据库中获取数据并获取变量$sqlData;

所以数组有数据,问题是$.ajax

2 个答案:

答案 0 :(得分:1)

请制作2个文件,“t.php”文件和“t.html”文件,并在那里添加我的代码。运行代码并查看响应。您只需使用响应即可通过逗号“,”!!!

获取值

/ ********************更新*********************** / < / p>

// t.php

<?php
$a = array();
$a[]=1;
$a[]=2;
$a[]=3;
echo "$a[0],$a[1],$a[2]";
?>

// t.html

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script type="text/javascript">


function fun(){
    $.ajax({
        method: "GET",
        url: "t.php",
        data: { },
        dataType: "html",   //expect html to be returned                
        success: function(response){                    
		//$("#debug").html(response); //Outputs the html of php file into #dialog div
			alert(response);
	    document.getElementById("debug").innerHTML = (response); //Outputs the html of php file into #dialog div
		}
    })

}
</script>

<button onclick="fun()">Call Ajax Fun</button>

<div id="debug"></div>

这有帮助吗?

答案 1 :(得分:1)

在你的php文件中,你需要回声而不是返回

echo json_encode($q->query_array_assoc());

在javascript代码中:

$.ajax({
        method: "GET",
        url: "t.php",
        data: { type: 1, brand: this.value },
        success: function(data) {
            $('#debug').html(data);
            // if you want to use it as array
            var json_data = JSON.parse(data);
        }
    });