使用AJAX驱动的表单更新Twitter

时间:2010-02-27 20:01:05

标签: php jquery ajax forms twitter

我正在尝试制作一个AJAX表单,以便在更新时更新twitter状态。我的表单目前正在使用php,但我不确定如何添加AJAX功能。

以下是表格:

    <form id = "yourwhisper" method = "post" >
        <label for="whisper">Enter your status update</label>
        <textarea id="whisper" name="whisper" rows="2" cols="50" required></textarea>
        <label class="error" for="whisper" id="whisper_error">Must be no more than 140 characters.</label>

        <input id="lat" name="lat" style = "display:none"></input>
        <input id="lon" name="lon" style = "display:none"></input>
        <button type="submit" id = "submit">Pass it on</button>
    </form>

这是我作为表单操作的php(它从twitter api库调用php函数)。我现在把它移到了form-manager.php:

$t->update($_POST["whisper"], false, $_POST["lat"], $_POST["lon"]); 

最后,这是添加AJAX功能的jQuery代码。它接受更新的文本以及地理位置数据,并以'dataString'的形式将其传递给form-manager.php文件。

<script type="text/javascript" charset="utf-8">
        $(function() {  
          $('.error').hide();  
          $(".submit").click(function() {  
            // validate and process form here  

            $('.error').hide();  
            var whisper = $("textarea#whisper").val();
            var lat= $("input#lat").val();
            var lon = $("input#lon").val();
            if (whisper == "") {  
                $("label#whisper_error").show();  
                $("textarea#whisper").focus();
                return false;  
            }

            var dataString = 'whisper='+ whisper + '&lat=' + lat + '&lon=' + lon;  
            //alert (dataString);return false;  
            $.ajax({  
              type: "POST",  
              url: "form-manager.php",  
              data: dataString,  
              success: function() {  
                // alert ("form sent");
                });  
              }  
            });  
            return false;

          });  
        });

    </script>

我的问题是,如何让form-manager.php获取该信息并将其放入更新twitter所需的3个变量中?

1 个答案:

答案 0 :(得分:1)

dataString应该可以作为$_POST['dataString']用于PHP。它只是一个包含字符串的var。你应该explode

或者,如果您愿意,可以设置像{ whisper: "Foo", lat: "fooLat" }这样的ajax方法的数据属性,以便它们显示为$_POST['whisper']$_POST['lat']