使用javascript onload()和ajax来检索php数组

时间:2014-04-08 09:23:47

标签: javascript php ajax

我使用onload()和ajax从php获取数组,但它没有用。 html页面应该能够从n1.php和警报中获取数组(" GOOD"),但它没有给出任何响应,甚至没有提示GOOD或BAD,所以我真的不知道什么& #39;代码错了。我该如何解决这个问题?

n1.html:

<!DOCTYPE html>
<html>
<body onload="getArr();">
here
</body>
<script type="text/javascript">             
function getArr(){              
    alert('return sent');   
    $.ajax({
        url: "n1.php",
        dataType: 'json',
        success: function(json_data){
        var data_array = $.parseJSON(json_data);
        var rec = data_array[0];
        alert("GOOD");
        },
        error: function() {
        alert("BAD");
        }
    });                 
}
 </script></html>

n1.php:

<?php
    $output = array("cat","dog");
    echo json_encode($output);
?>

2 个答案:

答案 0 :(得分:1)

请求必须包含请求的类型。此外,dataType指的是您要发送的数据,只要您不发送任何数据,此处就不需要。 试试这个:

$.ajax({
  url: "n1.php",
  type: "GET",
  success: function(json_data){
    var data_array = $.parseJSON(json_data);
    var rec = data_array[0];
    alert("GOOD");
  },
  error: function() {
    alert("BAD");
  }
});  

答案 1 :(得分:1)

试试这个

$.ajax({
  url: "n1.php",
  dataType: 'json',
  success: function(json_data){
    var data_array = json_data; // Do not parse json_data because dataType is 'json'
    var rec = data_array[0];
    alert("GOOD");
  },
  error: function() {
    alert("BAD");
  }
});

现在,有两点需要注意:

  1. 您尚未在ajax中传递HTTP方法,但默认情况下它是GET,如上所述here in jQuery AJAX docs。如果不是GET,请传递适当的方法类型。

  2. 由于您已将dataType作为&#39; json&#39;发送,因此您无需解析成功处理程序中的响应中收到的json。