2011-01-10 15 views
3

Ich kann das Formular nicht erhalten, um die Variablen in ein anderes Skript mit dynamischen Feldern zu buchen?Post Form funktioniert nicht mit jquery Felder

edit: Das Skript erstellt eine neue Reihe von Eingabefeldern, aber keine von ihnen verwaltet Variablen in ein PHP-Skript.

jquery:

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

      var newRowNum = 2; 


      $('#addnew').click(function(){ 
        // increment the counter 
        newRowNum += 1; 

        var addRow = $(this).parent().parent(); 


        var newRow = addRow.clone(); 


        $('input', addRow).val($(this).val()); 
        $('name', addRow).val('os' + newRowNum); 


        $('td:last-child', newRow).html('<a href="" class="remove">Remove<\/a>'); 


        $('input', newRow).each(function(i){ 
          var newID = 'os' + newRowNum + i; 
          $(this).attr('id',newID).attr('name',newID); 
        }); 



        addRow.before(newRow); 


        $('a.remove', newRow).click(function(){ 
          $(this).parent().parent().remove(); 
          return false;       
        }); 


        return false; 
      }); 
    }); 

html:

<tr> 
<td> 
<input name="os21" type="text" id="os21" value="" size="24" maxlength="60" /></td> 
<td> 
<input name="os22" type="text" id="os22" value="" size="24" maxlength="60" /></td> 
<td> 
<input name="os23" type="text" id="os23" value="" size="10" maxlength="60" /></td> 
<td><a id="addnew" href="">Add +</a></td> 
</tr> 
<tr><td colspan="3" align="left" style="text-align: right; padding-top: 10px;"> 
<input type="submit" value="Update"> 
</td></tr> 
+0

Nur die ursprünglich erstellten Felder (os21, os22 und os23) erreichen den Server oder gar nichts? – polarblau

+0

Ich verstehe es nicht, was Sie wollen ... wollen Sie auf ein PHP-Skript von Ajax oder ?????? –

+0

@polarblau ja nur die Felder erreichen, nicht die dynamischen Felder. @Tricker versucht, Felder hinzuzufügen, die per Post an ein PHP-Skript gesendet werden sollen. Wie oben funktionieren nur Felder (os21, os22 und os23). – jackjlgregory

Antwort

2
<script language="text/javascript"> 
    function postMyForm() 
    { 
     $.ajax({ 
      url: "url from your file to post to", 
      data: $('#myForm').serialize(), 
      type: 'post', 
      success: function(data) { 
       // do stuff when request is done 
      } 
     }); 
    } 

    function AddNewRule() { 
     // get last ID 
     // convert to a int to count with it 
     var LastID = parseInt($('#myTable tr:last td input').attr('id').replace(/os/gi, '')); 
     // add 1 to get next ID 
     LastID += 1; // OR LastID = LastID + 1; what you wanna use 

     // create new rule and set the next ID 
     var newRule = $('<tr><td><input name="os'+ LastID +'" type="text" id="os'+ LastID +'" value="" size="10" maxlength="60" /></td></tr>'); 

     // append/insert at the end of your table 
     $('#myTable').append(newRule); 
    } 
</script> 

<form id="myForm"> 
<table id="myTable"> 
    <tr> 
     <td> 
      <input name="os21" type="text" id="os21" value="" size="24" maxlength="60" /> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <input name="os22" type="text" id="os22" value="" size="24" maxlength="60" /> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <input name="os23" type="text" id="os23" value="" size="10" maxlength="60" /> 
     </td> 
    </tr> 
</table> 
    <a id="addnew" onclick="AddNewRule();" href="javascript:void(0);">Add +</a> 
<table> 
    <tr> 
     <td colspan="3" align="left" style="text-align: right; padding-top: 10px;"> 
      <input type="submit" onclick="postMyForm();" value="Update"> 
     </td> 
    </tr> 
</table> 
</form> 
0

Ich sehe nicht, dass Sie die Variable i initialisiert. Wir können nicht alle Quellen sehen, aber ich stelle mir vor, dass dies wahrscheinlich das Problem ist.

0

Eingabeelemente soll innerhalb Element sein ...

0

Warum Sie nicht einfach den Zähler verlieren und tun es wie folgt aus:

<input name="os[]" type="text" class="os" value="" size="24" maxlength="60" /> 

Nachdem Sie Zeilen hinzufügen dynamisch binden müssen Sie (‘ Klicken Sie auf ') oder verwenden Sie einfach die live() Methode.

+0

Wie kann ich dies in das obige Skript implementieren? Ich möchte den Zähler fallen lassen. – jackjlgregory

Verwandte Themen