2010-11-26 5 views
1

ID로 폼을 serialize하려고하는데 serialize하지 않고 데이터를 보내지 않습니다.Jquery 폼 serialization이 실패합니다.

코드는 아래에 첨부되어 있습니다.

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

if($('#selectProductDialog').length == 0) 
{ 
    $('#page-content').after('<div id="selectProductDialog"></div>'); 
    $('#selectProductDialog').hide(); 
} 

$("#ViewProduct").click(function(){ 
    $.post("products/view", "ProductID="+$(this).val(), function(data){ 
    $("#page-content").html(data); 
    }); 
    return false; 
}); 

$('#AddProductLine').click(function() { 
    $.post("order/getitem", null, function(data){ 
    $("#selectProductDialog").html(data); 
    }); 
    $("#selectProductDialog").dialog({ autoOpen: true, 
      hide: 'slide', 
      show: 'slide', 
      title: 'Selected Product', 
      close: function(event, ui) 
      { 
      $("#selectProductDialog").empty(); 
      }}); 
    return false; 
}); 

$('#addItemDialogButton').live('click', function(event) { 
    $.post("order/getitem", "ProductCode="+$("#ItemCode").val(), function(data){ 
    $("#selectProductDialog").html(data); 
    }); 
    return false; 
}); 

$('.selectProductID').live('click', function(event) { 
    $.post("order/getitem", "ProductID="+$(this).val(), function(data){ 
    $("#orderItems tbody").append(data); 
    }); 
    return false; 
}); 


$('a.delete').live('click', function(event) { 
    $(this).parent().parent().remove(); 
    return false; 

}); 

$("#DueDate").datepicker({ altFormat: 'yy-mm-dd', dateFormat: 'dd-mm-yy', minDate: new Date() }); 

$("#SaveNewOrderButton").click(function() { 
    $.post("order/newin", $("#NewOrderForm").serialize(), function(data){ 
    $("#page-content").html(data); 
    }); 
    return false; 

}); 

}); 

//--> 
</script> 

<div class="container_12"> 
<div class="grid_12"> 
    <div class="box-header">New Inbound Order 
    <span class="fr"> 
    <button id="SaveNewOrderButton" class="button small">save</button> 
    </span> 
    </div> 

     <div class="box"> 
     <form id="NewOrderForm"> 
      <div class="container_12"> 
    <div class="grid_6"> 
      <div class="box-header">To:</div> 
      <div class="box"> 
      <textarea id="ToAddress" rows="5" cols="50"></textarea> 
      </div> 
      </div> 

      <div class="grid_6"> 
      <div class="box-header"></div> 
      <div class="box"> 
      <div class="row">Customer Account: <select id="CustomerAccount"><option value="1">chemists</option></select></div> 
      <div class="row">Order ID: </div> 
      <div class="row">Date: <?= date("d-m-Y");?></div> 
      <div class="row">Due Date: <input type="text" id="DueDate"></div> 
      <div class="row">Customer Order Reference: <input type="text" id="COReference"></div> 
      </div> 
      </div> 
      </div> 
      <br class="cl" /> 


      <div class="box-header">Order Items 

      <span class="fr"> 
      <button id="AddProductLine" class="button small">add</button> 
      </span> 

      </div> 

      <div class="box table"> 
      <table id="orderItems"> 
      <thead> 
      <tr><td width="15%">Product Code</td><td width="50%">Product Name</td><td width="15%">Qty</td><td width="15%">Location (pallet) - Quantity</td><td width="5%">remove</td></tr> 
      </thead> 
      <tbody> 

      </tbody> 
      </table> 
      </div> 
     </form> 
    </div> 
</div> 
</div> 
<br class="cl" /> 

이 TBODY 에서 나는 다음과 같은 행과 테이블을 채우는 대화 상자가

<tr class="Item"><td><input type="hidden" id="Pcode[]" value="2">TW-TT-8423</td><td>Something Big - Real Big - Item A</td><td><input type="text" id="Qty[]"></td><td><select id="Location[]"> <option value="1">AA3 - 20</option> 
<option value="3">BA3 - 16</option> 
<option value="8">AA1 (3) - 1032</option> 
</select></td><td><a href="#" class="delete">X</a></td></tr> 

답변

2

"직렬화는"태그를 포함해야 속성 "이름"작동 "입력/선택/텍스트 영역/... "코멘트에 대한

exmaple : 확인

var data = "", limit = ""; 
$('myForm').find('input').each(function(){ 

    data += limit + encodeURIComponent($(this)[0].id) + "=" + encodeURIComponent ($(this).val()); 
    limit = "&"; 
}); 
+0

오 그래서 폼 요소에없는 ID? – nerv

+0

id는 반드시 있어야하지만 "serialize"함수는 serialization을 만들기 위해 "name"을 사용합니다. "form"으로 "post"를 만들 때 "name"속성을 설정해야합니다. 당신은 또한 당신의 일을하고 예를 넣을 수 있습니다. –

+0

아, 죄송합니다. 나는 jquery를 사용하기 시작한 이래로 모든 양식을 만들기 위해 zend_form을 사용 해왔다. 그게 고쳐 졌어. 도와 주셔서 감사합니다. – nerv

관련 문제