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

发布于 2024-11-27 15:35:31 字数 257 浏览 4 评论 0原文

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

I have created a web.py URL,and it provides only 2 text boxes(No submit button). When I type a number in the first text field it should post the value into another URL. By using AJAX post() I want to post the data to the second URL. The second URL should return the data that I have posted, and it should display inside the second text box. How can I solve this problem by using key up function and AJAX post() method? I have tried a lot with post() method, but I couldn't find a proper solution.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

淡看悲欢离合 2024-12-04 15:35:31

我已经找到了解决方案,感谢所有建议,我已在此处附加了完整的代码以及建议的更改。

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()

I have found the solution,Thanks for all the suggestions,i have attached my complete code here with the suggested changes.

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()
じ违心 2024-12-04 15:35:31

试试这个

$(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);
        }
      });
     }  
  });
});

Try this

$(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);
        }
      });
     }  
  });
});
第七度阳光i 2024-12-04 15:35:31

你能发布你到目前为止所拥有的吗?这看起来非常直接......

示例:

$(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 击败了我......它的答案基本上相同,只是确保你也绑定了更改事件,并处理任何错误。

Could you post what you have so far? this seems pretty straigth forward..

example:

$(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 beat me to it... its basically the same answer just make sure you bind the change event also, and handle the any errors.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文