2013-01-31 2 views
0

$.post(jquery ajax function)과 함께 일부 데이터를 보내려고 할 때 문제가 있습니다. 작동하지 않습니다. 내 코드는 여기에 있습니다 : 나는 문제가 데이터가 전송되는으로 추측하고jQuery에서 AJAX 양식 제출

$.post(
    $(this).attr("action"), 
    {  
     task: "add", 
     $(this).serialize() 
    }, 
    function(data) { 
     if (data.length > 0) { 
      alert("Success"); 
     } 
    } 
); 

, 실제로 나는 내가 task 변수 모든를 지정해야합니다 그것을 위해 그렇게 수행 할 수있는 스위치의 경우 문이 많은 하나의 완전한 AJAX 페이지가 내가 보낸 시간과 AJAX 요청.

이 문제를 해결하는 방법에 대한 더 좋은 해결책이 있다면 언제든지 생각을 나누십시오. 고맙습니다.

+0

$ (이) 뭔가있을 거라고 생각 ?? – Ankit

+0

예. – Chakra

+0

을 제출하는 양식을 참고하면 코드를 더 자세히 요약 할 수 있습니다 .... !! –

답변

1

다음과 같아야합니다.

$.post(
    $(this).attr("action"), 
    {task:"add",'data': $(this).serialize()}, 
    function(data){ 
     if(data.length > 0){ 
      alert("Success"); 
     } 
    } 
); 
+0

작동하지만 어떻게 PHP 페이지에서 변수 "데이터"의 값을받을 수 있습니다. 너는 그 Ankit에 대한 아이디어를 나눌 수 있다면. – Chakra

+0

어떻게 PHP에서 작업을받을합니까? 데이터도 동일하게 수신됩니다. 귀하의 성명서에서 '작업'을 '데이터'로 바꾸십시오. 즉 $ _REQUEST [ 'data'] – Ankit

+0

이것은 아마도 당신이 찾고있는 것이 아닙니다. 서버가 작동하더라도 서버는 두 개의 사후 매개 변수 인 "작업"과 "데이터"만을 수신하며, 후자는 결합 된 양식 필드 - 값 쌍의 긴 문자열입니다. –

1

문제는이 부분이다 : 그것은 문자 그대로 유효한 객체 아니기 때문에 구문 오류를 던질 것

{  
    task: "add", 
    $(this).serialize() 
} 

. $(this).serialize()을 호출하면 요청에 대한 쿼리 문자열 인 문자열이 반환됩니다. 당신이 할 수있는 것은이 대신이다

$.post($(this).attr('action'), $(this).serialize() + '&task=add', function(data) {...}); 
+0

고마워요. 안토니 씨. 그래서 여기에서 실제로 다른 문자열을 연결 한 다음 보내려고합니다. 정말 고마워. – Chakra

0

문제는 라벨이 쉼표 후 필요로하는 부분

{task:"add",$(this).serialize()} 

가 유효하지 아마.

적어도 유효한 개체가되지만 서버에 게시하는 것은 바람직하지 않습니다.

내가 가장 쉬운 해결책은 형태를 참조

$.post($(this).attr("action"), 
$(this).serialize() + '&task=add', 
function(data){ 
if(data.length > 0){ 
    alert("Success"); 
} 
}); 
+0

이 방법으로 작동했습니다. 귀하의 의견에 많은 감사드립니다. :디 – Chakra