加入2个变量以形成新变量

时间:2014-08-10 09:31:26

标签: javascript php jquery mysql sql

首先,我使用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;。

有人可以就解决方案提出建议吗?感谢。

2 个答案:

答案 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],其中x03