2013-03-08 49 views
0

我对当前的javascript/ajax请求有问题。我试图从里面我.append我的代码如下打开一个jQuery的对话框:从Ajax请求中打开Jquery对话框?

for (var i in rows) 
{ 
    var row = rows[i];   
    var id = row[0]; 
    var NewEdit = row[0]; 
    var PreviousEdit = row[1]; 
    var FunctionName = row[2]; 
    var FunctionID = row[2] 
    function ShowInfo() 
    { 
    dialog('Original: <br>'+PreviousEdit+'<br><br> New: <br>' +NewEdit); 
    } 
    $('#RecentEdits').append("<br>Page: <a href=Page.php?ID="+FunctionID+">"+FunctionName+"</a> - <a href='#' OnClick='ShowInfo()'>Info</a>"); 
} 

我只粘贴relivant代码,如果需要的话我可以张贴整个功能。

我知道一个事实,我的变量正确设置,因为他们被打印出来。

如何打开一个对话框,显示来自Javascript函数内部的更多信息?


解决方案:

由于没有正确的答复。我已经使用了OQJF的例子,并产生了这样的结果:

<script> 
function ShowInfo(a,b) 
     { 
     alert('Original: \n'+unescape(a)+'\n\n New: \n'+unescape(b)); 
     }; 
    </script> 
    <script> 
//window.setInterval(function() 
//{ 
    $(function() 
    { 
    $.ajax({          
     url: 'RecentUpdates.php', data: "", dataType: 'json', success: function(rows)   
     { 
     $('#RecentEdits').empty(); 

      for (var i in rows) 
      { 
       var row = rows[i];   
       var id = row[0]; 
       var NewEdit = row[0]; 
       var PreviousEdit = row[1]; 
       var FunctionName = row[2]; 
       var FunctionID = row[3]; 
       $('#RecentEdits') 
       .append("<br>Page: <a href='Page.php?ID="+FunctionID+"'>"+FunctionName+"</a> - "); 
       $('#RecentEdits').append("<input type='button' onClick=ShowInfo('"+escape(PreviousEdit)+"','"+escape(NewEdit)+"'); value='Show'>"); 
      } 
     } 
    });  
    }); 
// }, 1000); 
    </script> 

它使我能够从我的Javascript打印输出中访问函数。

我有缠绕在我的HTML引号的麻烦,所以我决定做两个附加。这似乎工作得很好!

+0

您的代码中有一个非标准函数声明(不是表达式),等待编辑完成。 – 2013-03-08 02:23:27

+0

冷我请求你发布一个答案,并解释我要去哪里错了?我只是最近拿起了AJAX/Javascript,所以我仍然在学习过程中 – user2146021 2013-03-08 02:26:11

回答

0

虽然首先我想你应该在函数showInfo之外设置循环,并为其设置2参数。下面是我没有测试的示例代码,但它应该是这样的。

function ShowInfo(orginVal,newVal) 
     { 
     var msg =('Original: <br>'+orginVal+'<br><br> New: <br>' +newVal); 
     $(<div>msg</div>).appendTo('body).dialog();//maybe you can add some options for dialog 
     } 

下面的部分似乎在另一个功能。

for (var i in rows) 
    { 
     var row = rows[i];   
     var id = row[0]; 
     var NewEdit = row[0]; 
     var PreviousEdit = row[1]; 
     var FunctionName = row[2]; 
     var FunctionID = row[2] 

     $('#RecentEdits').append("<br>Page: <a href=Page.php?ID="+FunctionID+">"+FunctionName+"</a> - <a href='#' OnClick='ShowInfo(/*add your 2 parameters here*/)'>Info</a>"); 
    } s 
+0

必须是某个地方的功能/改变,因为现在我没有得到任何输出 – user2146021 2013-03-08 02:34:57

+0

改变它只是一个'alert()'为了测试的目的..我仍然无法达到这个功能 – user2146021 2013-03-08 02:36:33

+0

这只是一个示例,它提供了创建对话框并显示您的信息的想法,您可以测试代码或将其更改为符合您的要求。 – OQJF 2013-03-08 02:36:38