我正在做这个动画程序,我经常使用 ajax 脚本更新浏览器中的数据。稍微简化一下代码,这样你就会明白我想要做什么。首先,我有一个数组中动画中每个项目的 ID,我使用了一个 while 语句。在此期间,我将值保存到 javascript 变量并在 ajax 中使用它。由于更新,ajax 有一个定时间隔。
稍后当我尝试在 Ajax 中输出变量时,只有数组的最后一个值将由 Ajax 处理,但我想要它们全部。
输出显示为蓝色二次容器,当悬停在正方形上时,我的项目的 id (trid) 将显示。
我不太擅长这个,所以我非常感谢答案:)
这是代码:
<?php
$id1 = 0;
while($rows = mysql_fetch_array($data)){
$id1 = $id1 + 1; // + 1 for each row in array
$TR_ID = $rows['trid']; // Ex Py 12938
?>
<div>
<script>
var jid = '<?php echo $id1; ?>'; // + 1 for each row in array
var id = '<?php echo $TR_ID; ?>'; // Contains id's like PY12938
</script>
</div>
<!-- Container where output is shown -->
<div class="hover" id="container" style="width:50px; height:50px; position:relative; background-color:blue;">
<script>
document.getElementById('container').id = id;
</script>
<span id="id_<?php echo $id1; ?>" style="position:absolute;"> <!--ID = id_xxxxx -->
</span>
</div>
<script>
setInterval("ajaxCall()",5000);
function ajaxCall()
{
$.ajax({
type: "POST",
url: 'api.php',
data: {id: id},
dataType: 'json',
success: function(data)
{
var trid = data[0].trid; // Ex PY12938
var hover = (trid); // Same
document.getElementById("id_<?php echo $id1 ?>").innerHTML = hover; // Sending ex PY12938 to div which is named "id_PY12938".
}
});
};
</script>
<?php
}
?>
这是用于 ajax 的 php(已更新):
<?php
$host = "localhost";
$user = "root";
$pass = "";
$databaseName = "mydb";
$tableName = "table1";
$tableName2 = "table2";
$con = mysql_connect($host,$user,$pass);
$dbs = mysql_select_db($databaseName, $con);
$ID = @$_POST['id'];
$sqlCompareId = "(table1.trid = '".$ID."' AND table1.trid = table2.trid)";
$data = ("select * from table1, table2 where $sqlCompareId");
$result = mysql_query($data);
$dataArray = array();
while($array = mysql_fetch_assoc($result)){
$dataArray[] = $array;
}
echo json_encode($dataArray);
?>
如果我们说我现在的输出是彼此下方的 4 个方形 div,id 为 1、2、3、4。只有 id=4 的 div 会通过悬停显示它的trid。
也许我不能同时运行多个 ajax?
不懂就问我!谢谢!