2017-05-02 9 views
0

我正在使用JSON从数据库获取数据,但我希望某些数据具有唯一的标识符或句柄。例如,我有一行示例消息,我想为每条消息附加一个“回复”按钮。但是,当然,如果我只包含在循环中,每条消息都包含相同的按钮,并具有相同的功能。为了演示,我用数字“1”替换了按钮,数据库中有三条消息,理想情况下我希望每个消息都出现不同的数字:1,2,3等。如何获取JSON数据的唯一句柄

代码:

// jSON call for messages page 


$(document).ready(function() 
     { 
          $.getJSON("http://localhost:8888/php_this/json-data-messages.php", function(data) 
      { 
     $.each(data.messages, function(index, message) 
       { 
     $("#msgContent").append("<p><b> From: </b>" + message.fromLecturerNumber + "</p>"); 
        $("#msgContent").append("<p><b> Date: </b>" + message.messageDate + "</p>"); 
        $("#msgContent").append("<p><b>Subject: </b>" + message.messageTitle + "</p>"); 
        $("#msgContent").append("<p>" + message.messageBody + "</p>"); 
        $("#msgContent").append("<p>1</p>"); 
     }); 
          }); 
      }); 
+0

每一次'$ .each()'循环,'索引'值增加我的1取决于你正在循环的数组中的条目;用它。 – Omar

+0

当然,我现在感到愚蠢。 – Brian

回答

1

您可以使用循环中的index变量为每个按钮创建一个唯一编号。该指数将从0开始,但您可以加1以获得1,2,3等。

$(document).ready(function() { 
    $.getJSON("http://localhost:8888/php_this/json-data-messages.php", function(data) { 
     $.each(data.messages, function(index, message) { 

      [...your other code here...] 

      $("#msgContent").append("<p>" + (index + 1) + "</p>"); 
     }); 
    }); 
}); 
+0

谢谢你,我意识到@Omar的答案,我觉得没有看到它是愚蠢的。 – Brian

0

伙计们,感谢您的帮助。缺少索引值是一个业余的错误,然而事实证明有一种更简单的方式来做我想做的事情。我最终将jSON数据的各个位转换为唯一的id并使用它们建立到其他页面/函数的链接。检查出来:

$(document).ready(function() 
      { 
       $.getJSON("http://localhost:8888/php_this/json-data-students.php", function(data) 
       { 
        $.each(data.students, function(index, student) 
        { 
         $("#studentsData").append("<li><a href='#" + student.firstName + "'>" + student.lastName + ", " + student.firstName + "</a></li>"); 
         $("#theBody").append("<div data-role='page' id=" + student.firstName + ">\n\ 
         <div data-role='header' data-add-back-btn='true'><h1>Course Details</h1></div>\n\ 
         <div role='main' class='ui-content' id='content'><ul data-role='listview' id='list2'>\n\ 
         <li>Student ID: " + student.studentID + "</li>\n\ 
         <li>Module No1: " + student.moduleNo1 + "</li>\n\ 
         <li>Module No2: " + student.moduleNo2 + "</li>\n\ 
         <li>Course ID: "+ student.courseID + "</li>\n\ 
         </ul></div><div data-role='footer' data-position='fixed'>\n\ 
         <a href='www.dit.ie' target='_blank'>DIT</h4></div></div>"); 
        }); 
        $("#studentsData").listview("refresh"); 
       }); 
      });