Обновите Twitter с помощью AJAX-формы - PullRequest
1 голос
/ 27 февраля 2010

Я пытаюсь создать форму 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, который я использовал в качестве действия формы (он вызывает функцию php из библиотеки твиттера api). Теперь я переместил его в form-manager.php:

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

Наконец, это код jQuery, который добавляет функциональность AJAX. Он берет текст для обновления вместе с данными геолокации и передает его в файл form-manager.php в виде dataString.

<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 взять эту информацию и поместить ее в 3 переменные, необходимые для обновления Twitter?

1 Ответ

1 голос
/ 27 февраля 2010

dataString должен быть доступен PHP как $_POST['dataString'].Это только одна переменная, которая содержит строку.Вы должны взорвать это.

Или, если хотите, вы можете установить свойство данных метода ajax как { whisper: "Foo", lat: "fooLat" }, чтобы они отображались как $_POST['whisper'] и $_POST['lat']

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...