使用AJAX中的.post()方法将数据发布到另一个URL

时间:2011-08-02 14:12:22

标签: jquery ajax web.py

我创建了一个web.py网址,它只提供了2个文本框(无提交按钮)。当我在第一个文本字段中键入数字时,它应该将值发布到另一个URL中。通过使用AJAX post()我想将数据发布到第二个URL。第二个URL应该返回我发布的数据,它应该显示在第二个文本框内。如何通过使用key up函数和AJAX post()方法解决此问题?我用post()方法尝试了很多,但我找不到合适的解决方案。

3 个答案:

答案 0 :(得分: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()

答案 1 :(得分: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);
        }
      });
     }  
  });
});

答案 2 :(得分: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;
    });
};

Shankar打败了我......基本上相同的答案只是确保你也绑定了更改事件,并处理任何错误。