2013-10-27 3 views
0

나는 지금 몇 시간 씩 노력해 왔고 어떤 일을 저지르는가?Ajax 요청이 내 오브젝트 데이터를 전송하지 않음

동적으로 채워지는 객체를 만들었습니다.이 문제는 완벽하게 작동합니다. 인스턴트 메신저를 통해 PHP 프로세스 페이지로 데이터를 보내려고 할 때 발생합니다.

아래 코드는 키와 값을 가져 오는 객체의 내 루프입니다.

//build up dynamic datastring for ajax 
      var dataString = "" 
      dataString += "{"; 
      jQuery.each(obj,function(key, value) { 
       dataString += "'"+key+"':'"+value+"',"; 
      }); 
      //remove last , then add the containing bracket 
      dataString = dataString.slice(0,-1); 
      dataString += "};"; 
      console.log(dataString); 

       //do ajax 
       jQuery.ajax({ 
        url:'/builder/process-form.php', 
        type:'POST', 
        data:dataString 
       }).done(function(data){ 
        console.log(data); 
       }); 
      }); 

나는 콘솔에 dataString의 VAR을 작성하고이 출력 { '유형'이다 'tickbox', 'FNAME': '빈', '값': '빈', 'REQ' : '예', 'valType': ''}; 이것은 데이터 매개 변수에 대해 올바르게 구조화 된 것 같습니다.

php 페이지에서 나는 모든 게시물 데이터를 순환하며 복사 할 때 { 'type': 'tickbox', 'fname': 'Empty', 'value': 'Empty', 'req ':'예 ','valType ':' '}; 데이터 : 라인 다음이 작동 후?

어떤 도움을 크게

많은 감사

이안

답변

1

어쩌면 나는 당신의 과정에서 뭔가를 그리워하지만 당신은 객체처럼 보이는 "datastring"를 구축 할 필요가없는, 단지 객체를 전송 PHP 쪽.

+0

답장을 보내 주셔서 감사합니다, 미안 해요 바보가되고! – Ian

1

이 제대로 데이터 매개 변수 구성 보이는을 감상 할 수있다?

아니요. JavaScript 객체 리터럴에 대한 소스 코드를 작성하고 있습니다. data 매개 변수에 대한 일반 JavaScript 객체가 필요합니다.

dataString 및 그와 관련된 모든 항목을 제거하십시오. 당신이 그런 형식 (대신 표준 형태로 인코딩 된 데이터)에 데이터를 보낼 않은 경우

data: obj 

다음 생성 된 것과 거의 동일 JSON (하지만 엄격한 인용 규칙을 사용하여) 및 표준 기능을 생성 할 수 있습니다 :

var datastring = JSON.stringify(obj); 

당신은, 그러나, 당신은 요청 헤더에 지정할 필요가 있다고 할 경우

data: datastring, 
contentType: "application/json", 
,536,

handle it differently on the PHP side. 당신이에 $ _POST와 개체 속성을 얻을 다음

//do ajax 
    jQuery.ajax({ 
     url:'/builder/process-form.php', 
     type:'POST', 
     data:obj 
    }).done(function(data){ 
    console.log(data); 
}); 

:

+0

답장을 보내 주셔서 감사합니다. 바보가되어서 죄송합니다. – Ian

관련 문제