отправить данные на другой URL с помощью метода .post () в AJAX - PullRequest
1 голос
/ 02 августа 2011

Я создал URL web.py, и он содержит только 2 текстовых поля (кнопка «Нет отправки»). Когда я набираю число в первом текстовом поле, оно должно отправить значение в другой URL. Используя AJAX post(), я хочу разместить данные на втором URL. Второй URL должен возвращать данные, которые я разместил, и он должен отображаться во втором текстовом поле. Как я могу решить эту проблему, используя функцию key up и метод AJAX post()? Я много пробовал с post() методом, но не смог найти правильного решения.

Ответы [ 3 ]

2 голосов
/ 05 августа 2011

Я нашел решение, спасибо за все предложения, я приложил мой полный код здесь с предлагаемыми изменениями.

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 голос
/ 02 августа 2011

Не могли бы вы опубликовать то, что у вас есть? это выглядит довольно прямолинейно ..

пример:

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

Шанкар опередил меня ... это в основном тот же ответ, просто убедитесь, что вы также связываете событие изменения и обрабатываете любые ошибки.

1 голос
/ 02 августа 2011

Попробуйте это

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