我的目标是使用PHP从mysql数据库中获取数据数组,以便在javascript函数中使用;以下示例中的graph()。
我选择通过将我需要的数据加载到DOM元素来完成此操作。我现在正试图访问它。查询有效,我可以在#loadTarget div中看到我需要的信息。我无法访问innerHTML。
根据Jquery文档,我可以使用一个完整的函数,它将在加载完成后执行: .load(url [,data] [,complete]) 那么,为什么当我能看到我需要在我的元素中呈现的数据库数据时,我是否可以使用getElementByID和innerHTML来访问它?
var dataLocation = document.getElementById(“arrayTargetOne”); var data = dataLocation.innerHTML;
以上返回数据为空。如果我在父元素上执行相同的getElementById(不是我在PHP .load文件中创建的那个,那个已存在的那个),我可以看到我需要的数据。这就像.load函数不完整。我错过了一些小问题,还是应该采取不同的方法?
Javascript / Jquery
$( ".selectUser" ).click(function() {
var userChoice = document.getElementById(this.id);
var user = x.innerHTML;
$("#loadTarget").load("example.php",{"data":user},function() {
var dataLocation = document.getElementById("arrayTargetOne");
var data = dataLocation.innerHTML;
alert(data);
graph();
});
PHP
<?php
$login_errors = array();
require ("config.php");
require (MYSQL);
$arrayOne = array();
$arrayTwo = array();
$exampleQuery = $dbc->prepare("SELECT exampleFieldOne,exampleFieldTwo FROM exampleTable WHERE userID=? AND name=?");
$exampleQuery->bind_param('ss',$_SESSION['user_id'],$_POST['data']);
$exampleQuery->execute();
$exampleQuery->bind_result($a,$b);
while($exampleQuery->fetch()){
array_push($arrayOne,$a);
array_push($arrayTwo,$b);
}
echo '<span id="arrayTargetOne">';
echo json_encode($arrayOne);
echo '</span><span id="arrayTargetTwo">';
echo json_encode($arrayTwo);
echo '</span>';
?>
});
答案 0 :(得分:0)
var list = document.getElementById('loadTarget').children;
for (var i=0, len = list.length; i<len; ++i) {
var data = list[i].nodeValue; //for text nodes, use innerHTML for elements
//do stuff with data
}
该列表将是已创建的DOM节点的列表。