JavaScript主细节面板 - 如何传递ajax对象?

时间:2015-06-08 07:18:08

标签: javascript jquery ajax

我正在响应一个Ajax请求,返回的对象作为数据,让我们说10-15个参数。

现在我在主页面中为每个项目添加一个表格行,如何在单击详细信息功能的另一侧时为每个项目传递此数据,而不进行另一个ajax调用或将所有参数添加为数据属性...

这是主面板上发生的事情,

function addFruitRow(data) {
    $('#fruittable').append(
        '<tr itemId="' + data.FruitID + '" onclick="Load_Fruit_Details($(' + data + ')); class="dRow">' +
            '<td class="dCell" style="width:40px;"><img src="' + data.FruitUrl + '" class="avatar" /></td>' +
            '<td class="dCell" style="vertical-align: top; padding-top:8px;"><span class="fruitItem">' + data.Family + '</span></td>' +
        '</tr>');
}

使用json.stringify时编辑

<tr class="dRow" itemid="s-1-4-34-345345345-345345-3651691534-2343" onclick="loadMember1($({" address":null,"bio":null,"clientid":0,"email":"blahblah.one@frutfactory.com","isReady":0,
"mobile":"22222","name":"blah123="" haaaa","phone":"1111","pictureurl":"https:="" 2013.frutfactory.com="" us="" t3="" br="" t302062015111222="" fruits="" fruits.png",
"usersid":"s-1-4-34-345345345-345345-3651691534-2343","username":"blah123.haaaa"}));=""><td class="dCell" style="width:40px;">
<img src="https://2013.frutfactory.cm/us/t3/br/t302062015111222/fruits/fruits.png" class="avatar"></td><td class="dCell" style="vertical-align: top; padding-top:8px;">
<span class="memberItem">blah123 haaaa</span></td></tr>

真实数据:

Address: null
Bio: null
ClientID: 0
Email: "blahblah.one@frutfactory.com"
isReady: 0
Mobile: "22222"
Name: "blah123 haaaa"
Phone: "1111"
PictureUrl: "https://2013.frutfactory.cm/us/t3/br/t302062015111222/fruits/fruits.png"
UserSID: "s-1-4-34-345345345-345345-3651691534-2343"
Username: "blah123.haaaa"
__proto__: Object

点击

时出错 参数列表

之后的

Uncaught SyntaxError:missing)

1 个答案:

答案 0 :(得分:2)

您可以使用JSON.stringify(data)将数据传递给load函数,然后使用JSON.parse(参数)在load函数中接收它。

示例

<强> EDIT1

function addFruitRow(data) {
 $('#fruittable').append(
'<tr itemId="' + data.FruitID + 
'" onclick=\'Load_Fruit_Details($(' + JSON.stringify (data) + '));\' class="dRow">' +
    '<td class="dCell" style="width:40px;"><img src="' + data.FruitUrl + '" class="avatar" /></td>' +
    '<td class="dCell" style="vertical-align: top; padding-top:8px;"><span class="fruitItem">' + data.Family + '</span></td>' +
'</tr>');
}

<强> EDIT2

我发现只是以stringify格式传递数据,它在Load功能中作为对象被接收。另外,我在单引号中添加了一个转义符,因为你的函数将在onclick事件调用中。

function Load_Fruit_Details(param)
{ 
  var data=param;
}