2013-03-02 47 views
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函數輸出的內容。
我很欣賞任何想法。

回答

1

我不知道PHP,但從我剛纔讀到的,你有一個「關聯數組」。 this表示關聯數組由json_encode()轉換爲對象。所以你應該使用:

$("#price" + lastchar).html(data.price); 
$("#matricule" + lastchar).html(data.matricule); 
$("#tag" + lastchar).html(data.tag); 
$("#ins_yr1" + lastchar).html(data.ins_yr1); 
$("#Totalacq" + lastchar).html(data.Totalacq); 
+0

感謝您的帖子。我只是嘗試過,但仍然沒有輸出。看來,其他一切正在工作(張貼到PHP,PHP文件),所以我仍然在虧損。 – BernardA 2013-03-02 20:17:15

+0

更新:現在工作。我認爲問題在於我在php文件comp_data.php上留下了一些標題,這些標題在數據傳回時會讓事情搞砸。所以,再次感謝John S的幫助! – BernardA 2013-03-02 22:23:36

相關問題