2017-06-26 3 views
0

Ich versuche, das nächste Element aus Array Json mit DisplayItem-Funktion anzuzeigen, aber nach dem Klicken auf die Schaltfläche, lädt das Formular den ersten Wert (ArrayResponse [0]). Was soll ich tun, um stattdessen den nächsten Artikel anzuzeigen? dieseJQuery nächste Element von Array anzeigen

$(document).ready(function() { 
    var firstElement; 
    var arrayResponse; 
    var index = 0; 

    var request = new XMLHttpRequest(); 

    // When the file has loaded, 
    request.onload = function() { 

    // parse the JSON text into an array of post objects. 
    arrayResponse = JSON.parse(request.responseText); 

    var firstelement = arrayResponse[0]; 

    $("#name").val(firstelement.name); 
    $("#author").val(firstelement.author); 
    $("#content").val(firstelement.content); 

    // Pass the posts array to the callback. 

    }; 
    request.open("GET", "http://127.0.0.1:8887/posts.json", true); 
    request.send(null); 


    $("#nextButton").bind("click", function() { 

    displayItem(arrayResponse[++index]) 

    }); 

    function displayItem(item) { 
    $("#name").val(item.name); 
    $("#author").val(item.author); 
    $("#content").val(item.content); 
    } 
}); 
+0

Mögliche Duplikat [Wie auf Formular HTML nächsten Eintrag anzuzeigen] (https://stackoverflow.com/questions/44761891/how-to -display-next-item-on-form-html) –

+0

Sie haben die gleiche Frage zweimal gestellt: https://stackoverflow.com/questions/44761891/how-to-display-next-item-on-for-formml, I glaube nicht, das ist ein guter Weg, auf StackOverflow –

Antwort

0

Wechsel:

$("#nextButton").bind("click", function(){ 
    displayItem(arrayResponse[++index]) 
}); 

dazu:

$("#nextButton").bind("click", function(){ 
    displayItem(arrayResponse[index]); 
    index++; 
}); 
+0

Danke für Ihre Antwort gehen .. :) Aber form wieder laden ersten Wert wieder – IProgrammer

+0

Vielleicht ist die Verwendung von jQuery Ajax-Funktionen eine gute Idee [jQuery get] (https://api.jquery.com/jquery.get/) –

1

Ich habe den Code mit diesem test json

Ich habe this jsfiddle und es scheint perfekt zu arbeiten. Es muss eine Art von Fehler mit Ihrem JSON geben.

Html:

<input id="name" /><br> 
<input id="author" /><br> 
<input id="content" /><br> 
<button id="nextButton">Next</button> 

Js:

$(document).ready(function() { 
    var firstElement; 
    var arrayResponse; 
    var index =0;   

var request = new XMLHttpRequest(); 

// When the file has loaded, 
request.onload = function() { 

    // parse the JSON text into an array of post objects. 
    arrayResponse = JSON.parse(request.responseText); 

    firstelement = arrayResponse[0]; 

    $("#name").val(firstelement.id); 
    $("#author").val(firstelement.name); 
    $("#content").val(firstelement.username); 


    // Pass the posts array to the callback. 

}; 
request.open("GET", "https://jsonplaceholder.typicode.com/users", true); 
request.send(null); 



$("#nextButton").bind("click", function(){ 

    displayItem(arrayResponse[++index]) 

});  

function displayItem(item) { 
     $("#name").val(item.id); 
     $("#author").val(item.name); 
     $("#content").val(item.username);   
} 
}); 
+0

Hallo! Danke für Ihre Frage .. Ich ersetzte URL mit meinem localhost (http://127.0.0.1:8887/posts.json) und ARBEITE ES auf jsfiddle.net..so meine JSON-Datei ist es gut !!. Aber auf dem Chrome-Browser funktioniert nicht !! – IProgrammer

Verwandte Themen