2010-02-27 6 views
1

J'essaie de créer un formulaire AJAX qui mettra à jour le statut de Twitter lors de sa mise à jour. J'ai la forme travaillant actuellement avec PHP, mais je ne suis pas sûr de savoir comment ajouter des fonctionnalités AJAX.Mise à jour de Twitter avec le formulaire AJAX

est ici la forme:

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

C'est le php que j'avais que l'action de forme (il appelle une fonction php à partir d'une bibliothèque twitter api). Je suis maintenant déplacé pour former-Manager.php:

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

Enfin, voici le code jQuery qui ajoute la fonctionnalité AJAX. Il prend le texte pour la mise à jour, avec les données de géolocalisation, et le transmet au fichier form-manager.php sous la forme de '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> 

Mon problème est, comment puis-je obtenir le formulaire puis-Manager.php prendre cette information et le mettre dans les 3 variables dont il a besoin de mettre à jour Twitter?

Répondre

1

La chaîne dataString doit être disponible pour PHP en tant que $_POST['dataString']. Ce n'est qu'une seule var qui contient une chaîne. Vous devriez le explode.

Ou si vous voulez, vous pouvez définir la propriété de données de la méthode ajax comme { whisper: "Foo", lat: "fooLat" } afin qu'ils apparaissent comme $_POST['whisper'] et $_POST['lat']

+0

Donc, si je formater la chaîne de données pour vous assurer qu'il est exactement ce qu'il faut être affiché, ça devrait marcher? –

+1

données: {murmurer: "Foo", lat: "xxx", lon: "xxx"} devrait le travail – Sinan

+1

par le chemin dans votre exemple ci-dessus quelque chose comme liste ($ whisper, $ lat, $ long) = exploser (' & ', $ _POST [' dataString ']) devrait également fonctionner – Sinan

Questions connexes