其他脚本中的空变量

时间:2015-01-25 19:22:03

标签: javascript jquery

我有一个问题。

此脚本从数据库接收数据,并在输出元素中从接收的数据中生成列表/文本。

没关系,但是,当我想再次使用变量ID时 - 变量为空。 为什么? 如何从收到的数据中获取变量?

你能帮助我吗?

<script id="source" language="javascript" type="text/javascript">    


  $(function testujem () 
{
//---------------------------
// 2) Send a http request with AJAX http://api.jquery.com/jQuery.ajax/
//---------------------------
$.ajax({                                      
  url: 'api9.php',                  //the script to call to get data          
  data: "user=<?php echo $login_session; ?>",                        //you can insert url argumnets here to pass to api.php for example "id=5&parent=6"
  dataType: 'json',                //data format      
  success: function(data)          //on recieve of reply
  {
    var id = data[4];              //get id
    var vname = data[5];
    var vname2 = data[6];          //get name
    //--------------------------
    // 3) Update html content
    //--------------------------
    $('#output').html("<b>ID: </b>"+id+"<b> Name: </b>"+vname+"<b> Name 2: </b>"+vname2 ); 
    $('#output2').html(id);
    $('#output3').html(vname);     //Set output element html
    //recommend reading up on jquery selectors they are awesome http://api.jquery.com/category/selectors/
  setInterval( testujem, 2000); // every is OK

  }  

});

});  
</script>    
<div id="output2"></div> <!-- LIST OK, var ID must exists -->    
<div id="output3"></div> <!-- LIST OK, var VNAME must exists -->    


<script>
var iddd = id; //var id is empty
var vnamee= vname; // var vname is empty I need this var in other script
.....
</script>     

api.php

....
             //--------------------------------------------------------------------------
  // 2) Query database for data
  //--------------------------------------------------------------------------
  $value = $_GET['user'];
  $result = mysql_query("SELECT * FROM $tableName WHERE tlc='$value'");            //query
  $array = mysql_fetch_row($result);                          //fetch result    

  //--------------------------------------------------------------------------
  // 3) echo result as json 
  //--------------------------------------------------------------------------
  echo json_encode($array);

?>

1 个答案:

答案 0 :(得分:0)

您命名为id的变量仅在AJAX调用的成功函数中定义。 (它是该函数的局部变量)。使其成为全球性的,并且随处可用。

此外,变量在AJAX调用完成后只会有一个值,所以你要使用,例如, AJAX成功函数之外的代码中的$.Deferred对象。