2
我試圖通過JQuery更新多個項目,例如span標記。我設法使用html dataType來更新單個項目,但我一直無法找到引用項目數組的正確方法。如何在JQUERY SUCCESS處理程序上引用數組JSON/HTML數據類型
該問題似乎在下面的setData函數中。我試圖把它作爲一個普通的數組來引用,但這似乎不起作用。
這是JQuery的:
<script>
$(document).ready(function() {
$(".hook1").change(function() {
pass_id = (this.value);
var seltop = $(this).attr('id');
var lastchar = seltop.slice(-1);
$.ajax({
type: "POST",
url: "comp_data.php",
dataType: "json",
data: {
passval: pass_id,
pass2: lastchar
},
success: function setData(data) {
$("#price" + lastchar).html(data[0].price);
$("#matricule" + lastchar).html(data[1].matricule);
$("#tag" + lastchar).html(data[2].tag);
$("#ins_yr1" + lastchar).html(data[3].ins_yr1);
$("#Totalacq" + lastchar).html(data[4].Totalacq);
}
});
});
});
</script>
這是comp_data.php文件的相關部分:
<?php
$version_id = $_REQUEST['passval'];
$i = $_REQUEST['pass2'];
mysql_query("CREATE OR REPLACE VIEW vcomp AS (SELECT......");
$return = array(
"price" = > "",
"matricule" = > "",
"tag" = > "",
"ins_yr1" = > "",
"Totalacq" = > ""
);
$name = array_keys($return);
$ct = count($name);
$n = 0;
while ($n < $ct) {
$key = $name[$n];
$sql2 = mysql_query("SELECT *
FROM vcomp
ORDER BY segment_id,price
");
while ($row = mysql_fetch_assoc($sql2)) {
$return[$key] = $row[$key];
}
$n++;
}
$returnJSON = json_encode($return);
echo $returnJSON;
$ returnJSON這最後的回聲將產生
{"price":"1014000","matricule":"10000","tag":"6000","ins_yr1":"25350","Totalacq":"1055350"}
而且這就是我想用setData函數輸出的內容。
我很欣賞任何想法。
感謝您的帖子。我只是嘗試過,但仍然沒有輸出。看來,其他一切正在工作(張貼到PHP,PHP文件),所以我仍然在虧損。 – BernardA 2013-03-02 20:17:15
更新:現在工作。我認爲問題在於我在php文件comp_data.php上留下了一些標題,這些標題在數據傳回時會讓事情搞砸。所以,再次感謝John S的幫助! – BernardA 2013-03-02 22:23:36