Опитвам се да покажа стойността на #response от кода по-долу във полетата за въвеждане. Ето кода.
<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>
$ ( "# Отговор").Val (responseText); -> Ако това съдържа две стойности, има ли начин да извлечете тези стойности отделно? това, което бих искал да направя, е да показва стойности поотделно в три отделни полета за въвеждане.
$("#response").val(responseText);
Това може да съдържа стойности като, ПродуктОписание, Коментари към продукта, Тип на продукта. Тези стойности идват от сервлета. След получаване на тези стойности те ще бъдат показани в три отделни полета за въвеждане.
В момента, ако направя следното,
<input type="text" id="response"/>
Това ще покаже и трите стойности в едно и също поле за въвеждане. Някаква идея как мога да покажа три стойности в три отделни полета за въвеждане? Благодаря предварително
входът идва от сървлет страница. Вътре в "doGet" имам следния код.
for (Product8339384 ps1 : ps) {
comments = ps1.getComments();
description =ps1.getDescription();
}
out.println(comments);
out.println(description);
изход: Изходът трябва да бъде показан в двете отделни полета за въвеждане. които ще показват коментари и описание. и двете стойности, получени от БД.
Отговори:
1 за отговор № 1Предлагам ви да прегледате резултата (ResponsText) и да разделите данните (надяваме се, че имате сепаратор там?) В бивш. Javascript Array [].
Когато имате начин да знаете колко елемента има в масива, който можете да използвате. динамично вмъквайте входни елементи, използвайки JQuery така:
$(InputsWrapper).append("<div><input type="text" name="mytext[]" id="field_"+ FieldCount +"" value="Text "+ FieldCount +""/></div>");
По този начин можете да използвате всеки елемент, който получавате от своя масив и да вмъкнете нов елемент на въвеждане, и да му присвоите данните вътре в $ .each (JQuery) или for-loop (Javascript).
Можете също да прегледате резултата си по този начин, ако не искате временния масив:
$.each(responseText.split(","), function(index, value) {
alert(index + ": " + value);
});
.... при положение, че имате на какво да се разделите :)
Надявам се това да ви даде нещо повече за работа ...
1 за отговор № 2
Ето решението. Кодът Jquery е вътре в заглавката.
$(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);
}
});
});
});
});
След това вътре в html тялото.
<input type="text" id="comments" name="id"/>
<input type="text" id="description" name="id"/>