首先,我使用jQuery,PHP,SQL,HTML和CSS。
我有一个有4名成员的聚会名单。当我访问我的派对详细信息页面时,我希望它使用listview显示4个成员的详细信息。
当我打开派对详情页面时,我向我的PHP发送$.post
请求以从我的数据库中检索成员详细信息。
然后我将它们存储在PHP中的数组中并回显响应:
$row = mysqli_fetch_array($result);
$mem1 = $row["mem1"];
$mem2 = $row["mem2"];
$mem3 = $row["mem3"];
$mem4 = $row["mem4"];
$result2 = json_encode(array(
"mem1" => $mem1,
"mem2" => $mem2,
"mem3" => $mem3,
"mem4" => $mem4
));
echo $result2;
接下来,当我回到我的.js文件尝试追加结果时,我只能通过调出一个成员数据来做到这一点。但我想调用其中的4个,所以我使用while循环:
$.post("retrieveDetails.php",
{
teamID:teamID, // data to pass into php
},
function(response)
{
console.log(response.mem1 + " " + response.mem2 + " " + response.mem3 + " " + response.mem4);
var x = 1;
while(x <= 4){
// part i'm stuck at
member = response.mem + x;
// if member column is not empty
if(member != ""){
$("#listview").append('<li> <img src="images/displaypic.jpg"> <h2>'+ member + '</h2> </li>').listview("refresh");
console.log("current addee is " + member);
}
x++;
}
}, 'json'
);
我对member = response.mem + x;
我的最终结果必须是member = response.mem1
,并且在下一个循环之后它将变为member = response.mem2
,依此类推......
但是当我通过console.log
输出它时,它返回&#34; NaN&#34;。
有人可以就解决方案提出建议吗?感谢。
答案 0 :(得分:1)
替换
member = response.mem + x;
与
member = response['mem' + x];
您的最终代码应该如下,
$.post("retrieveDetails.php", {
teamID: teamID, // data to pass into php
}, // data to pass into php
function(response) {
console.log(response.mem1 + " " + response.mem2 + " " + response.mem3 + " " + response.mem4);
var x = 1, member = null;//note that, i declared member
while (x <= 4) {
member = response['mem' + x];
if (member != "") { // if member column is not empty
$("#listview").append('<li> <img src="images/displaypic.jpg"> <h2>' + member + '</h2> </li>').listview("refresh");
console.log("current addee is " + member);
}
x++;
}
}, 'json'
);
});
答案 1 :(得分:1)
你可以这样做:
member = response["mem" + x];
在JavaScript中,您可以使用带有文字(obj.foo
)的点表示法,或带有字符串(obj["foo"]
)的括号表示法。在后一种情况下,字符串可以是任何表达式的结果。
但我可能会将数据作为数组而不是作为对象发回:
$row = mysqli_fetch_array($result);
$mem1 = $row["mem1"];
$mem2 = $row["mem2"];
$mem3 = $row["mem3"];
$mem4 = $row["mem4"];
$result2 = json_encode(array($mem1,$mem2,$mem3,$mem4));
echo $result2;
然后您可以将其编入response[x]
,其中x
为0
到3
。