2017-05-02 3 views
0

Ich verwende JSON, um Daten aus einer Datenbank abzurufen, aber ich möchte, dass einige der Daten eine eindeutige Kennung oder Handle haben. Zum Beispiel habe ich eine Reihe von Beispielnachrichten, ich möchte eine "Antwort" -Taste an jede Nachricht anhängen. Aber natürlich, wenn ich nur in die Schleife aufgenommen habe, enthält jede Nachricht die gleiche Schaltfläche mit der gleichen Funktionalität. Zur Demonstration habe ich den Knopf mit der Nummer "1" ersetzt, es gibt drei Nachrichten in der Datenbank, Idealerweise möchte ich, dass sie jeweils mit unterschiedlichen Nummern angezeigt werden: 1, 2, 3, usw.So erhalten Sie ein eindeutiges Handle für JSON-Daten

CODE:

// 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

Jedes Mal, wenn '$ .each()' Schleifen, 'Index' Wert erhöht meine 1 abhängig von den Einträgen im Array, das Sie loopen; benutze es. – Omar

+0

Natürlich fühle ich mich jetzt dumm. – Brian

Antwort

1

Sie können die Indexvariable aus der Schleife verwenden, um eine eindeutige Nummer für jede Schaltfläche zu erstellen. Der Index beginnt bei 0, aber Sie könnten 1 dazu hinzufügen, um 1,2,3 usw. zu erhalten.

$(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

Danke dafür, ich erkannte die Antwort dank @Omar und ich fühle mich dumm, weil ich es nicht gesehen habe. – Brian

0

Leute, ich danke Ihnen für Ihre Hilfe. Den Indexwert zu vermissen war ein Amateurfehler, aber es stellte sich heraus, dass es eine noch einfachere Art gab, das zu tun, was ich wollte. Ich habe schließlich einzelne Bits von jSON-Daten in eindeutige IDs umgewandelt und sie verwendet, um Links zu anderen Seiten/Funktionen zu erstellen. Probieren Sie es aus:

$(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"); 
       }); 
      }); 
Verwandte Themen