2011-03-17 3 views
0

사용자가 변경하는 즉시 데이터를 보내는 양식을 구현하고 싶습니다.언제든지 양식이 변경됩니다.

예 :

사회자는 기사를 편집하고, 그것은 선택의 값을 변경합니다. 그가 할 때 아약스 동적 페이지에 해당 필드를 변경하려면 요청을 보냅니다. 변경 후 모든 페이지가 "업데이트 완료 ..."라는 작은 상자를 표시해야합니다.

가능합니까? 가장 좋은 방법은 무엇입니까?

당신은 거기에 jQuery를 AJAX 물건과 장소에있어

답변

0

(내가 jQuery를 사용할 수 있습니다). 내가주의해야 할 유일한 것은 얼마나 많은 AJAX 요청을하는 것이다. 예를 들어, 텍스트 영역이있는 경우 모든 키 누르기를 업데이트하지 않으려 고합니다. 서버의 AJAX로드가 커집니다. 이 경우 10 초마다 업데이트하십시오.

선택 상자와 같은 경우 $("#selectbox").change()을 사용하고 그 안에 AJAX 호출을 넣으십시오.

+0

을 tjhat 방식으로, 영업 이익은 크로스 브라우저 문제를 알고 있어야합니다 : HTTP : //stackoverflow.com/questions/208471/getting-jquery-to-recognise-change-in-ie. 그러므로 '클릭'을 사용하면 선택 상자에 대한 더 좋은 아이디어가됩니다. – pyvi

+0

감사합니다. pyvi :-) – Bojangles

0

원하는 경우 해당 상자 또는 전체 양식에 대한 ajax 호출을 트리거하는 모든 입력에 대해 blur 이벤트를 사용할 수 있습니다. 내 관심사는 당신이 정말로 그것을 자주 제출하기를 원한다면 나는 또한 검증에 대해서 걱정할 것이다. 또한 원한다면 하나의 상자가 아닌 전체 양식을 제출할 수도 있습니다. 하지만 솔직히이 생각은 전혀 마음에 들지 않습니다.

1

어쨌든 jQuery를 사용하는 것이 가장 쉽습니다.

아약스를 호출하려는 이벤트에 따라 사용하는 선택기에 따라 다릅니다. 아마도 아약스를 호출하는 함수를 작성한 다음 선택기를 사용하여 (태그 이름이나 클래스 등을 통해) 변경하려는 각 요소를 반복 한 다음 onblur 또는 변경 중 어떤 스위트를 사용하든 양식을 전달하는 아약스를 호출하십시오. 매개 변수. 그

편집과 같은

 
function callAjax(form) 
{ 

    $.ajax({ 
     type: "POST", 
     url: "/yourscript.php", 
     data: $(form).serialize(), // Send all the data from the form 
     success: function(msg) 
     { 
      // Show a success message, or whatever 
     } 
    }); 

} 
$("form input").blur(function() 
{ 

    callAjax($("form")); 

}); 

뭔가 : 위에서 언급 한 바와 같이, 그 서버에 부하를 많이 넣을 수 있기 때문에 어느 흐림 이벤트에 요청을 호출하지하는 생각이 될 수 있습니다. 당신은 것 때문에 위의 제출 양식에 이벤트를 부착하는 것이 가장 좋은 선택이 될 것입니다 : 선별에 변경 이벤트를 사용할 때

 
$("form").submit(function() 
{ 

    callAjax($("form")); 

    return false; 

}); 
+1

양식 제출시 AJAX 요청을 하시겠습니까? 어쨌든 양식은 그 시점에 제출됩니다. – pyvi

+0

페이지 재로드 (아약스 지점의 일부)없이 양식 제출을 수행하려면 제출에 대해 예를들 수 있습니다. – Alex

+0

아, 네가 의미하는 바가 오해했다. – pyvi

관련 문제