我有一个问题。
此脚本从数据库接收数据,并在输出元素中从接收的数据中生成列表/文本。
没关系,但是,当我想再次使用变量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);
?>
答案 0 :(得分:0)
您命名为id
的变量仅在AJAX调用的成功函数中定义。 (它是该函数的局部变量)。使其成为全球性的,并且随处可用。
此外,变量在AJAX调用完成后只会有一个值,所以你要使用,例如, AJAX成功函数之外的代码中的$.Deferred
对象。