2013-05-06 8 views
1

사용자로부터 입력 값을 가져 왔고 이러한 값을 PHP의 데이터베이스에 항목을 추가 할 수 있도록 AJAX 요청에 인수로 게시하려고합니다.자바 스크립트의 배열 요소를 AJAX POST 요청의 매개 변수로 전달

JS 나의 기능은 다음과 같습니다

function reqAdd() 
{ 
    var tablename = $("table").options[$("table").selectedIndex].value 
    var fields = new Array(); 
    var inputs = $$("input.postfields"); 
    new Ajax.Request(
      "process.php?type=add&table="+tablename, 
      { 
       method: "post", 
       parameters: 
       onSuccess: functionName, 
       onFailure: ajaxFailure 
      } 
    ); 
} 

변수 입력은 모든 입력 필드가 난 그냥 그 값을 추출 할 필요가 그래서 필요 포함하지만, 그들은 더 키가없는 경우 어떻게 매개 변수 섹션에 배치 할 수 있습니다 ? 그들은 단지 가치입니다.

+1

아마도 Form.serialize()를 사용하는 것이 더 좋습니다. http://prototypejs.org/doc/latest/dom/Form/serialize/ –

+0

왜 키가 없습니까? PHP에서 어떤 형식으로 기대합니까? CSV 또는 JSON과 같이 항상 사용자 정의 직렬화를 사용할 수 있습니다. – Bergi

답변

0

Form.serializeElements()은 요소 배열 $$("input.postfields")을 사용하고이를 게시를 위해 준비된 쿼리 문자열 또는 개체로 변환합니다.

그래서

var inputs = $$("input.postfields"); 
inputs = Form.serializeElements(inputs); //add this line 

그리고 개인적으로

parameters: inputs, 

내 Ajax 요청에 개체를 전달하고, 내가 옵션을 전달 할 수 있도록이 입력을 제출 건너 뛰는 등 serializeElements()

inputs = Form.serializeElements(inputs,{hash:true,submit:false}); 
에 반대

http://api.prototypejs.org/dom/Form/serializeElements/

관련 문제