получение значений типа ввода с тем же именем на следующей странице без использования URL

0

Используется следующий код для динамического добавления текстового поля с использованием JQUERY на странице jsp (one.jsp):
Как добавить текстовое поле динамически с помощью JQuery

Скажем, пользователь добавляет 3 текстовых поля, нажимая "ADD TEXTBOX", и после ввода этих значений пользователь нажимает на submit.
После представления я хочу получить доступ к этим 3 значениям в нескольких текстовых типах ввода типа myarray [] на следующей странице (nextpage.jsp).
На самом деле я хочу получить доступ к этим значениям на следующей странице (страница jsp).

Пробовал использовать request.getparameter, но это привело к получению первого значения, т.е. первого индекса:
Взято имя как "myarray []" и получило доступ к нему, используя
<%= request.getParameter("myarray[]")%>: my array values на следующей странице '

Что мне теперь делать, есть ли альтернатива этому или некоторые изменения, которые нужно сделать здесь:
Это форма на странице one.jsp:

<form action="nextpage.jsp" method="get" enctype="multipart/form-data">
<b>Add value in separate textboxes:</b>
     <div id='TextBoxesGroup'>
        <div id="TextBoxDiv1">
         <label>newvalue #1 : </label><input type='textbox' id='textbox1' name="myarray[]">
        </div>
     </div>
     <input type='button' value='Add textbox' id='addButton'><br />

   <input type="submit" value="Click to get result on next page"/><br /><br />  

Ниже приведен фрагмент кода:

<html>
    <head>

        <title></title>
<script type="text/javascript" src="jquery-2.0.3.min.js"></script>
<style type="text/css">

 div{
        padding:8px;
    }



 </style>

 </head>
<body>

    <h2>Code for adding multiple textboxes dynamically... <br /></h2> 


     <br />

<script type="text/javascript">
                   $(document).ready(function(){

    var counter = 2;

    $("#addButton").click(function () {

    if(counter>10){
            alert("Only 10 textboxes allow");
            return false;
    }   

    var newTextBoxDiv = $(document.createElement('div'))
         .attr("id", 'TextBoxDiv' + counter);

    newTextBoxDiv.after().html('<label>newvalue #'+ counter + ' : </label>' +
          '<input type="text" name="textbox' + counter + 
          '" id="textbox' + counter + '" value="" >');

    newTextBoxDiv.appendTo("#TextBoxesGroup");


    counter++;
     });
        });          
  </script>

Примечание: игнорируйте значение счетчика, поскольку оно просто выполняется здесь для проверки цели, код работает правильно, но он извлекает только первое значение индекса, используя параметр request.getparameter.
Пожалуйста, предложите мне что-нибудь, новичок в JQUERY и Javascript

Теги:
jsp

2 ответа

2
Лучший ответ

Вы должны ввести одно и то же имя в свой атрибут имени ввода, чтобы сделать это, вам нужно отредактировать свою строку

newTextBoxDiv.after().html('<label>newvalue #'+ counter + ' : </label>' +
      '<input type="text" name="textbox' + counter + 
      '" id="textbox' + counter + '" value="" >');

К этому:

newTextBoxDiv.after().html('<label>newvalue #'+ counter + ' : </label>' +
      '<input type="text" name="myarray[]" id="textbox' + counter + '" value="" >');

На странице yout jsp вы делаете: <% = request.getParameterValues("myarray []")%>

имейте в виду: вам не нужно ставить "[]" в jsp или на любой другой язык, кроме как для php

  • 0
    Я исправил эту ошибку, спасибо ... теперь, как получить это значение на следующей странице, <% = request.getParameter ("myarray []")%>, как показано выше, получает одно значение как индекс 1-е значение..значает текстовое поле 1 значение только на следующей странице ... как получить все значения (3 здесь) на следующей странице
  • 0
    Вам просто нужно удалить «[]» из вашего ввода и на странице JSP, чтобы вы могли сделать: request.getParameterValues ("myarray") и <input type = "text" name = "myarray" ...
Показать ещё 4 комментария
1

код работает правильно, но он извлекает только первое значение индекса, используя параметр request.getparameter.

Использовать метод getParameterValues

String[] valueArray = request.getParameterValues("myarray[]");  

Возвращает массив объектов String, содержащий все значения, указанные данным параметром myarray[], или null если параметр не существует.

  • 0
    Теперь это возвращает [Ljava.lang.String; @ 5cab4d: после представления на следующей странице .... Теперь после того, что вы написали, я напечатал это так: for (int i = 0; i <valueArray.length; i ++) {out.println ("<li>" + valueArray [i] + "</ li>"); } // Теперь это только печать первого значения текстового поля myarray
  • 0
    Спасибо, Аникет, твои комментарии мне тоже помогли ... Я снова заметил ответ Ламари и нашел решение :)
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню