我的目標是從使用PHP的mysql數據庫中獲取數據的數組,以用於javascript函數; graph()在下面的例子中。訪問使用jquery .load()創建的DOM元素()
我選擇通過加載我需要的數據到DOM元素來做到這一點。我現在試圖訪問它。查詢工作,我可以看到我的#loadTarget div中需要的信息。但我無法訪問innerHTML。根據Jquery文檔,我可以使用一個完整的函數,它將在加載完成後執行: .load(url [,data] [,complete]) 爲什麼然後,當我能看到數據庫數據I需要呈現在我的元素,我可以不使用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>';
?>
});
如果你想從ajax調用數據,你真的應該使用'。.get()'來獲取數據到JavaScript,而不是先把它放到你的DOM中。 – jfriend00 2014-10-31 18:08:22
謝謝。如果我將我的請求修改爲如下所示,那麼爲了傳回數據,PHP需要看起來像什麼?假設回聲json數組不會這樣做嗎?$。get(「example.php」,{「data」:user},function(data){alert(「Data:」+ data); }); – DVCITIS 2014-10-31 19:09:42
您應該從PHP返回JSON並讓jQuery將它解析爲JavaScript對象作爲您的ajax結果。然後,您將爲您解析所有數據。 – jfriend00 2014-10-31 19:44:52