Próbuję wyświetlić wartość #response z kodu poniżej w polach wejściowych. Oto kod.
<script>
$(document).ready(function() {
$("#productID").change(function() {
//alert($("#productID option:selected").val());
var pId = $("#productID").val();
$.get("updateProduct", {
productID: pId.trim() //using trim to get rid of any extra invisible character from pId
},
function(responseText) {
$("#response").val(responseText);
});
});
});
</script>
$ („# odpowiedź”).val (responseText); -> Jeśli zawiera dwie wartości, to czy istnieje sposób na odzyskanie tych wartości osobno? chciałbym wyświetlić wartości osobno w trzech osobnych polach wejściowych.
$("#response").val(responseText);
Może zawierać wartości takie jak ProduktOpis, komentarze do produktu, typ produktu. Te wartości pochodzą z serwletu. Po otrzymaniu tych wartości zostaną wyświetlone w trzech osobnych polach wejściowych.
W tej chwili, jeśli wykonam następujące czynności,
<input type="text" id="response"/>
Spowoduje to wyświetlenie wszystkich trzech wartości w tym samym polu wejściowym. Masz pomysł, jak wyświetlić trzy wartości w trzech osobnych polach wejściowych? Z góry dziękuję
dane wejściowe pochodzą ze strony serwletu. Wewnątrz „doGet” mam następujący kod.
for (Product8339384 ps1 : ps) {
comments = ps1.getComments();
description =ps1.getDescription();
}
out.println(comments);
out.println(description);
Wydajność: Dane wyjściowe powinny być wyświetlane w dwóch oddzielnych polach wejściowych. która wyświetli komentarze i opis. obie wartości otrzymane z bazy danych.
Odpowiedzi:
1 dla odpowiedzi № 1Proponuję przejrzeć wyniki (ResponsText) i podzielić dane (mam nadzieję, że masz tam separator?) Na ex. JavaScript Array [].
Gdy masz sposób dowiedzieć się, ile przedmiotów jest w tablicy, możesz np. dynamicznie wstawiaj elementy wejściowe za pomocą JQuery:
$(InputsWrapper).append("<div><input type="text" name="mytext[]" id="field_"+ FieldCount +"" value="Text "+ FieldCount +""/></div>");
W ten sposób możesz użyć każdego elementu uzyskanego z tablicy i wstawić nowy element wejściowy oraz przypisać mu dane wewnątrz $ .each (JQuery) lub for-loop (JavaScript).
Możesz również przejrzeć wynik w ten sposób, jeśli nie chcesz tymczasowego sposobu tablicowego:
$.each(responseText.split(","), function(index, value) {
alert(index + ": " + value);
});
.... biorąc pod uwagę, że masz coś do podzielenia się :)
Mam nadzieję, że da ci to coś więcej do pracy ...
1 dla odpowiedzi nr 2
Oto rozwiązanie. Kod Jquery znajduje się w nagłówku.
$(document).ready(function() {
$("#productID").change(function() {
var pId = $("#productID").val();
$.get("updateProduct", {
productID: pId.trim() //using trim to get rid of any extra invisible character from pId
},
function(responseText) {
$.each(responseText.split(","), function(index, value) {
if(index === 0){
$("#comments").val(value);
}
else if(index === 1){
$("#description").val(value);
}
});
});
});
});
Następnie w treści HTML.
<input type="text" id="comments" name="id"/>
<input type="text" id="description" name="id"/>