2012-06-08 74 views
0

我想通過像objson.post.mypost [I] .idpost的JSON對象的一些元素,如JavaScript函數 這裏的說法是我的腳本:傳遞JSON對象的JavaScript的功能參數

if (window.XMLHttpRequest) 
{// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp1=new XMLHttpRequest(); 
} 
else 
{// code for IE6, IE5 
    xmlhttp1=new ActiveXObject("Microsoft.XMLHTTP"); 
} 
xmlhttp1.onreadystatechange=function() 
{ 
    if (xmlhttp1.readyState==4 && xmlhttp1.status==200) 
    { 
     var txttmp2 = xmlhttp1.responseText; 
     var obj2 = $.parseJSON(txttmp2); 
     var text1= document.getElementById("tabs-Mil"); 
     var objln=obj2.post.mypost.length; 
     //alert(objln+""); 
     for(var counter=0;counter<objln;counter++) 
     { 
      text1.innerHTML+=" '"+obj2.post.mypost[counter].status+"' @ <a href='#'>"+obj2.post.mypost[counter].namalokasi+"</a>&nbsp;on "+obj2.post.mypost[counter].tanggal+"<br/><a href='#' onclick='addcomment("+obj2.post.mypost[counter].idpost+","+localStorage.loggeduser+")'>comment</a><hr width='80%' align='left'><br/>"; 
      text1.innerHTML+="<span id='comments' name='comments'></span>"; 
     } 
    } 
} 
xmlhttp1.open("GET","http://localhost:280/finaltask/forjson.php?tmpid="+iduser+"&proses=showpost",true); 
xmlhttp1.send(); 

function addcomment(idcheckin,iduser) 
{ 
    $("#formcomment").show(); 
    var detpost=document.getElementById("detail-post"); 
    alert(idcheckin+"/"+iduser); 
} 

我已通過JSON對象元件: 的onclick = 'addcomment( 「+ obj2.post.mypost [計數器] .idpost +」, 「+ localStorage.loggeduser +」)'

但是當功能執行(功能addcomment (idcheckin,iduser)),據說'idcheckin'是'undefined'.....

任何人都可以幫助我嗎?

回答

0

不要concating字符串連接複雜的事件處理程序,使用的庫如jQuery:

$("<a></a>").text("Hello").click(function() { 
    addComment(obj.post.mypost[counter].idpost, ...); 
}) 
+0

感謝傑夫,現在的工作 –

0

確保您返回的結果也在意料之中。您應該檢查該idpost是否有效,可以考慮在循環開始時添加日誌記錄。

for(var counter=0;counter<objln;counter++) 
    { 
     console.log('loop results ' + counter + ': ' + JSON.stringify(obj2.post.mypost[counter])); // confirm output of selected element 
     alert('idpost: ' + obj2.post.mypost[counter].idpost); // Check result 
     text1.innerHTML+=" '"+obj2.post.mypost[counter].status+"' @ <a href='#'>"+obj2.post.mypost[counter].namalokasi+"</a>&nbsp;on "+obj2.post.mypost[counter].tanggal+"<br/><a href='#' onclick='addcomment("+obj2.post.mypost[counter].idpost+","+localStorage.loggeduser+")'>comment</a><hr width='80%' align='left'><br/>"; 

而且考慮改變:

addcomment("+obj2.post.mypost[counter].idpost+","+localStorage.loggeduser+") 

到:

addcomment(\""+obj2.post.mypost[counter].idpost+"\",\""+localStorage.loggeduser+"\")