2013-09-02 3 views
3

에 배열을 전달 내가 여러 동일한 필드 형태가 있습니다JQuery와 : 아약스

<input type="text" id="qte" value="" name="qte[]"> 

어떻게 transmetre 내 파일 처리에 배열?

나는 ajax가 전송 한 배열이 문자열이 된 것을 알아 챘다. 당신이에 의해 DOM 객체를 요청

$("#qte").val(); 

가 기억이 입력 텍스트 상자 객체의 값을 반환

$("#qte"); 

:이 입력 텍스트 상자 개체를 반환}

+2

[jQuery의 JSON에 직렬화] 가능한 복제본 (http://stackoverflow.com/questions/191881/seria) json-in-jquery) – Joren

+0

문자열을 보내는 경우 'serializeArray()'를 사용해야 할 수도 있습니다. –

+0

동일한 ID를 가진 여러 필드를 가질 수 없습니다. jQuery는 첫 번째 필드 만 인식합니다. ID는 고유 한 식별자입니다. –

답변

2

$("#form_commande").submit(function(event){ 

var qte = $("#qte").val(); 

if(qte== '') 
{ 
    $('#qte_message').html("KO QTE"); 
} 
else 
{ 
    $.ajax({ 
     type : "POST", 
     url: $(this).attr('action'), 
     data: $(this).serialize(), 
     success : function(){ 
      $('#form_commande').html('<p>OK</p>'); 
     }, 
     error: function(){ 
      $('#form_commande').html("<p>KO</p>"); 
     } 
    }); 
} 
return false; 

id,이 정의에 의해 하나만 반환됩니다.

2

이 주제를 읽어 보시기 바랍니다 : 한마디로 JQuery - Reading an array of form values and displaying it?

당신이 태그 name="qte[]" 대신 ID를 사용하여 반복한다. DOM에서는 서로 다른 ID를 가진 두 개의 다른 객체를 가질 수 없습니다.

var qte_array = new Array(); 
$('input[name="qte[]"]').each(function(){ 
    qte_array.push($(this).val()); 
}); 

이렇게하면 qte [] 배열의 모든 값이 하나의 객체 (qte_array)에 있습니다. 나중에이 배열을 JSON으로 직렬화 한 다음 문자열로 전달할 수 있습니다.

고도 모두 - 이러한 모든 작업을 수행하지 않아도됩니다. 양식을 사용하여 직접 ajax 요청을 보낼 수 있습니다. 이러한 입력의 데이터는 모두 전송됩니다. 서버 측에서 올바르게 처리해야합니다.

1

고유 한 ID는 더 이상 사용할 수 없습니다.

$("#form_commande").submit(function(event){ 

    var qte_array = new Array(); 
    $('input[name="qte[]"]').each(function(){ 
     qte_array.push($(this).val()); 
    }); 

    if(qte_array.length== 0) 
    { 
     $('#qte_message').html("KO QTE"); 
    } 
    else 
    { 
     $.ajax({ 
      type : "POST", 
      url: $(this).attr('action'), 
      data: {qte:qte_array}, 
      success : function(){ 
       $('#form_commande').html('<p>OK</p>'); 
      }, 
      error: function(){ 
       $('#form_commande').html("<p>KO</p>"); 
      } 
     }); 
    } 
}); 

과 같은 PHP에서 그것을 얻을 : 여기

$qte = $_POST["qte"]; 

당신이 JSON으로 값을 변환과 같은 JQuery와에 아약스에

+0

을 사용할 수 있습니다. 이것이 가장 중요하지 않습니다. 대신 클래스를 추가 할 수 있습니다. –

3

가져 오기 값을 통과해야 그런데

배열을

+0

필드 이름, 성 및 이메일도 있습니다. 데이터 (데이터 :)를 보내고 PHP에서 $ _ 게시 []를 복구하는 방법은 무엇입니까? 도움을 주셔서 감사합니다. –

+0

@ChristopheMartin : 행을 데이터로 변경하십시오. {qte : qte_array, 성, "email @ domain.COM "}, 과 PHP에서 그것을 얻을 $ 성 = $ _POST ["성 "]; $ 이메일 = $ _POST ["이메일 "]; – Salim

+0

우수, 정말 직접 배열을 전달 할 수있는 추천하고 그것을 배열로 받다. – veeTrain