2011-10-11 103 views
0

我有一个关联数组,我试图将它传递给jquery载入方法的参数部分。但是它并没有在服务器端显示为帖子。我怎样才能做到这一点?jquery ajax使用负载传递信息

这里是我的代码:

var selectcustomerpopup = null; 

$(document).ready(function() { 
    // Find customer 
    $('.CustomerSelectBtn').click(function() { 
     var uniqueid = $(this).attr('id'); 

     var customerSelectURL = $('#ajax_customer_select_url').val() 
        + "/" + uniqueid; 
     var custselectdata = new Array(); 

     custselectdata["fname"] = "TestFirst"; 
     custselectdata["lname"] = "TestLast"; 

     if (! ($('#selectCustomerDialog').length)) { 
      $('body').append(
       $('<div id="selectCustomerDialog" style="display: none;"></div>') 
       ); 
     } 

     var $findCustomerDialog = 
       $('#selectCustomerDialog').load 
       (customerSelectURL, custselectdata) 
      .dialog({ 
      autoOpen: false, 
      title: 'Select Customer', 
      width: 630, 
      height: 450, 
      position: 'center', 
      resizeable: true, 
      modal: true, 
      draggable: true, 
      closeOnEscape: true, 
      closeText: 'close' 

     }); 
     $findCustomerDialog.dialog('open'); 
     selectcustomerpopup = $findCustomerDialog; 
     return false; 
    }); 
    }); 

附加信息: 我有一个很好的答案,但我做了一些调查研究,并发现了一个伟大的链接解释JavaScript的关联数组非常好:http://blog.xkoder.com/2008/07/10/javascript-associative-arrays-demystified/

+0

我想你只需要一个对象来代替'custselectdata'数组:'VAR custselectdata = {};' – Blazemonger

+0

mblase,你有正确的答案,更换使用{}使其成为对象的数组是可行的解决方案,但没有答案让我选择。 – stephenbayer

回答

1

JavaScript并没有真正的关联数组。你只需要一个对象来代替custselectdata阵列:var custselectdata = {};

+0

它可能不被认为是一个真正的关联数组,但它看起来像一个关联数组。如果我可以弄清楚如何循环这些元素,我将拥有我需要的一切。 – stephenbayer

+1

@stephenbayer是的,这是真的。我的意思是说你不能将它声明为一个数组;你需要声明一个对象,它的行为完全像一个关联数组。循环遍历它可以使用'for(key in object){...}'来完成,并且值可以通过'var val = object [key];' – Blazemonger

+0

获得。先生非常感谢您。 – stephenbayer

0

该数据需要被格式化为一个字符串:

http://api.jquery.com/load/

所以你可以这样做:

var custSelectData = "fname=TestFirst&lname=TestLast"; 
+0

它不需要*是一个字符串。数据的地图也可以工作。 – Blazemonger

0

,可随时更换custselectdata VAR为

var custselectdata = {fname: 'testfirst', lname: 'testlast'};