js forms

Discussion in 'PHP' started by bxN5, 7 Jun 2011.

  1. bxN5

    bxN5 Elder - Старейшина

    Joined:
    8 Jan 2006
    Messages:
    687
    Likes Received:
    138
    Reputations:
    32
    тривиальная задача, при клике по ссылке нужно что бы добавлялось поле
    сделал так:
    <a href="#" onClick="process1(1)">Добавить</a> <br />

    function process1(data) {
    var p;
    for (var i = 0; i <= data; i++) {
    p+=('<input type="text" name="name['+i+']" />');

    }
    $('#output1').html('<p>'+p+'</p><p>');
    }
    если один раз кликаешь по ссылке то все хорошо, а как сделать так что бы при повторном клике еще одно поле добавлялось, а то которое до этого было добавлено не пропадало? ну и что бы их потом можно было как то на php обработать
     
  2. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    ad hoc

    Code:
    s/html/append/
     
  3. FindeR

    FindeR Elder - Старейшина

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    Если без jquery:
    Code:
    <script>
    function process1(data) 
    {
    var el;
    
    for (var i = 0; i < data; i++) 
    {
    
    el =  document.createElement('input'); 
    el.type = 'text';
    el.name = 'name[]';
    el.style.display = 'block';
    
    document.getElementById('output1').appendChild(el);
    }
    
    }
    </script>
    
    <a href="" onClick="process1(1); return false;">Добавить</a> <br />
    <div id="output1"></div>
    
    Если с jquery:
    Code:
    <script>
    function process1(data) 
    {
    var $new_input;
    for (var i = 0; i < data; i++) 
    {
    
    $new_input = jQuery('<input>', {
        type: 'text',
        name: 'name[]',
        css: {
            display: 'block'
        }    
    }).appendTo('#output1');
    
    }
    
    }
    </script>
    
    <a href="" onClick="process1(1); return false;">Добавить</a> <br />
    <div id="output1"></div>
    
    Потом на php ловишь массив $_POST['name'] (если, конечно, постом отправляешь форму).

    А вообще, какой смысл тут в цикле в функции? Он был сделан, чтоб заполнить поля name у элементов? Если да - цикл можно просто убрать, работа скрипта не изменится.
     
    #3 FindeR, 8 Jun 2011
    Last edited: 8 Jun 2011
    1 person likes this.