Ajax返回undefined

时间:2014-10-10 12:01:44

标签: javascript php jquery ajax

我会做一些ajax调用来保存数据库中的数据。 当我使用responseText时,我收到undefined。

这是.js:

function init(){
alert('loaded');
$('#fd-table-1').find('tr').click(function() {
                var idVar = $(this).find('td').eq(0).text();
                getData(idVar);
}); 

function getData(idVar){
    xmlhttp = new XMLHttpRequest();
    xmlhttp.open('POST','api.php',true);
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    alert(xmlhttp.respondeText);
    }
  }

    xmlhttp.send('id='+idVar);

}

}

window.addEventListener('load',init,false);

这是api.php:

<?php 

  //--------------------------------------------------------------------------
  // 1) Connect to mysql database
  //--------------------------------------------------------------------------
  include 'DB.php';
  $con = mysql_connect($host,$user,$pass) or die('1');
  $dbs = mysql_select_db($databaseName, $con)or die('2');

  //--------------------------------------------------------------------------
  // 2) Query database for data
  //--------------------------------------------------------------------------
  $result = mysql_query("SELECT * FROM ".$tableName." WHERE user_id=".$_POST['id'])or die('3');          //query
  $array = mysql_fetch_row($result)or die('4');                          //fetch result    
  //--------------------------------------------------------------------------
  // 3) echo result as json 
  //--------------------------------------------------------------------------
  echo json_encode($array);

?>

该网站是在Laravel4中开发的 为什么我收到&#34; undefined&#34; ?

谢谢

4 个答案:

答案 0 :(得分:1)

替换

alert(xmlhttp.respondeText);

alert(xmlhttp.responseText);

答案 1 :(得分:1)

你有jQuery - 你的整个AJAX函数可以替换为:

function getData(idVar) {
    return $.post('api.php', {id: idVar}).then(function(data) {
        alert(data);
    });
}

让你的respondeText错字完全没有意义!

答案 2 :(得分:0)

$.ajax({ 
    'global': false, 
    'url': "api.php", 
    'dataType': "json", 
    'success': function (data) {
        console.log(data);
    }
});

检查一下。愿这对你有所帮助......

答案 3 :(得分:0)

$.ajax

提到的更好,更易于使用的jQuery @kingkero
function ajaxCall()          // normal call
//function ajaxCall(page,display)  //can add some parameters if needed 
    {           
       //required only if you want to send some data
        var uid         =   <?echo $userId;?>   //can also use php values 
        var uid         =   "something"         //normal declration          

        var formdata        =   new FormData();      

        formdata.append('uid',uid);
        formdata.append('name',"ronser");   //can include many data through append  


        $.ajax({

                url         :   'yourLink.php',
                dataType    :   'text',
                cache       :   false,
                contentType :   false,
                processData :   false,
                data        :   bookDet,
                type        :   'post',
                success     :   function(data){
                           // alert(data);
                            document.getElementById("yourID").innerHTML=data;

            }
        });

    }

应该可以正常工作......