2011-08-02 1 views
1

나는 web.py URL을 만들었으며 2 개의 텍스트 상자 (제출 버튼 없음) 만 제공합니다. 첫 번째 텍스트 필드에 숫자를 입력하면 값을 다른 URL에 게시해야합니다. AJAX post()을 사용하여 두 번째 URL에 데이터를 게시하고 싶습니다. 두 번째 URL은 내가 게시 한 데이터를 반환해야하며 두 번째 텍스트 상자 안에 표시되어야합니다. 키 업 기능과 AJAX post() 메서드를 사용하여이 문제를 어떻게 해결할 수 있습니까? post() 메서드로 많이 시도했지만 올바른 솔루션을 찾을 수 없습니다.AJAX에서 .post() 메소드를 사용하여 데이터를 다른 URL에 게시하십시오.

+2

시도해 보는 코드를 항상 제공하는 것이 좋습니다. – Andrea

+0

이 질문에 대해 뭔가 비린내가 있습니다. 도움을 요청하기 전에 10 줄의 JavaScript를 시도하고 작성하는 것이 어렵지 않습니다. 특히 jQuery는 잘 설명되어 있습니다 (http://api.jquery.com/jQuery.post/). – Helgi

답변

1

는 시도이

$(function(){ 

    $("#textbox1").keyup(function(){ 
    if($(this).val()){ 
     $.post({ 
     url: "urlToPost", 
     data: { "textbox1": $(this).val() }, 
     success: function(data){//make sure the server sends only the required data 
      $("#textbox2").val(data); 
     } 
     }); 
    } 
    }); 
}); 
+0

web.py GET 함수에서 코드를 시도했지만 두 번째 텍스트 상자에 결과를 표시합니다. – Sreehari

+0

페이지에서 해당 게시물을 볼 수 있습니까? – ShankarSangoli

+0

textbox1에 무언가를 입력하면 해당 페이지에서 요청하는 것을 볼 수 있습니다. FF를 사용하거나 서버 측 코드에서 포인트를 유지하고 중단하고 호출되는지 확인하려면 Firebug 콘솔 또는 넷 탭을 체크인하십시오. – ShankarSangoli

1

당신은 당신이 지금까지 무엇을 게시 할 수 있을까요?

$(document).ready(function() { 
    //Bind to keyup + change to account for Copy/Paste with mouse button. 
    $("#Textbox1Id").bind("keyup change", function() { 
     $.ajax({ 
      url: 'yoururl', 
      type: 'POST', 
      data: { value: $("#Textbox1Id").val() }, 
      dataType: "json", 
      beforeSend: function() { 
      }, 
      success: function (result) { 
       $('#Textbox2Id').val(result.value); 
      }, 
      error: function (result) { 
       //Handle error 
      } 
     }); 
     return false; 
    }); 
}; 

이 쉔카 그것에 나를 이길 ...는 기본적으로 같은 대답은 당신이 또한 변경 이벤트를 바인딩 확인하고 오류를 처리 :이

예 .. 앞으로 꽤 곧장 보인다.

2

나는 해결책을 찾았습니다. 모든 제안에 감사드립니다. 제안 된 변경 사항으로 전체 코드를 첨부했습니다.

import web 

urls = (
    '/', 'first','/home','second') 


app = web.application(urls, globals(), True) 


class first: 

    def GET(self): 
     return''' 
     <html> 
     <head> 
     <script type="text/javascript"src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js"></script> 
     <script type="text/javascript"> 

     $(document).ready(function(){ 
      $("#text1").keyup(function(){ 
      var txt = $("#text1").val(); 
       $.post(
       "http://127.0.0.1:8080/home", 
       {text1 : txt}, 
       function(result){ 
       $("#text2").val(result); 
       }); 
      }); 
     }); 
     </script> 
     </head> 
     <body> 
     Enter your text here : <input type="text" id="text1" name="text1"/> 
     You entered   : <input type="text" id="text2"/> 
     </body> 
     </html>''' 

class second: 

    def GET(self): 
     return "Entered value goes here" 

    def POST(self): 
     i = web.input() 
     n = i.text1 
     return n 


if __name__ == "__main__": 
    app.run()