Способ передачи переменной из функции jquery через форму отправки

0

Я нашел этот фрагмент кода в Интернете и его то, что мне нужно, чтобы начинать учиться с помощью jquery. Мой вопрос заключается в том, как я могу передать/передать значение counter которое использовалось в части jquery-скрипта тега html head.

Когда я сказал о передаче, я имею в виду, когда я нажимаю кнопку "Отправить", предполагая, что у меня есть форма и отправлен ее на мой CI_controller.

Помимо того, что вы просите вас, ребята, из какой-либо функции сделать это, я подумал о своем пути. Я планирую сделать скрытое текстовое поле, где каждый раз добавлять или удалять текстовое поле, я буду помещать значение счетчика в это текстовое поле, поэтому, когда я нажимаю кнопку отправки, плохо знаю, сколько текстовых полей было добавлено динамически. Хотя, я все еще новичок, поэтому я не знаю синтаксиса этого.

здесь фрагмент.

<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>Textbox #'+ counter + ' : </label>' +
          '<input type="text" name="textbox' + counter + 
          '" id="textbox' + counter + '" value="" >');

    newTextBoxDiv.appendTo("#TextBoxesGroup");


    counter++;
     });

     $("#removeButton").click(function () {
    if(counter==1){
          alert("No more textbox to remove");
          return false;
       }   

    counter--;

        $("#TextBoxDiv" + counter).remove();

     });

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

    var msg = '';
    for(i=1; i<counter; i++){
      msg += "\n Textbox #" + i + " : " + $('#textbox' + i).val();
    }
          alert(msg);
     });
  });
</script>
Теги:
textbox

1 ответ

0

Вы можете просто установить значение ввода формы с помощью jQuery следующим образом:

$('form input#field-id').val(yourData); // where yourData is JavaScript variable containing the data/information

Учитывая, что у вас есть форма, которая выглядит примерно так:

<form action='/save-data' method='post'>
    <input type="text" id="field-id" name="data-name" />

    <input type="text" id="other-field" name="other-data-name" />
</form>

EDIT: на стороне клиента вы можете сделать $ ('form textarea'). Size(), который вернет количество текстовых полей внутри этой конкретной формы.

На стороне сервера вы можете просто пройти через $ _POST, чтобы узнать, сколько у вас текстовых полей:

$boxcount = 0;
foreach ( $_POST as $name => $value ) {
    if ( strpos($name, "textbox") == 0 ) {
        $boxcount += 1;
    } 
}
  • 0
    Я не уверен, что понял ваш ответ, но объясню свой вопрос. Например, я динамически добавил 4 текстовых поля с именами textbox1 в textbox4. поскольку он динамический, я не могу сказать, сколько текстовых полей у меня на контроллере. Итак, для того, чтобы я знал, сколько текстового поля, чтобы я мог получить все значения с помощью $ _POST, мне нужно число var, которое определяет имя текстовых полей при добавлении (name = "textbox" + count)
  • 0
    Я обновил свой ответ
Показать ещё 1 комментарий

Ещё вопросы

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