L'utilisation d'AJAX pour exécuter du code PHP
J'ai écrit un code JavaScript qui sera lu à partir de l'API Google Maps et obtenir une liste des objets JSON. Il va ensuite convertir chaque objet JSON dans un objet XML. Un collègue a besoin de cette liste convertis au format XML et ensuite ajouté à un fichier XML existant et ensuite l'enregistrer sur notre serveur. Alors j'ai écrit certains de code PHP pour le faire.
Maintenant c'est ma première fois de travailler avec PHP, mais j'ai réussi à écrire que le code PHP assez facilement. La prochaine chose que je suis en train de faire est d'écrire du javascript à exécuter le fichier PHP et également envoyer l'objet XML à l'aide de PHP où il peut ajouter et enregistrer le fichier XML. J'ai pensé que je voudrais utiliser du jQuery $.ajax
fonction. J'ai commencé à l'aide d'un exemple simple d'essayer de l'écho d'une chaîne dans certains <pre>
balises. Donc voici mon code:
Javascript (qui se trouve à l'intérieur index.php)
<script>
var scriptString = 'THIS IS MY STRING';
$('#clickMe').click(function(){
$.ajax(
{
method:'get',
url:'index.php',
data:
{
'myString': scriptString
}
});
});
</script>
PHP & HTML (se trouve aussi dans les index.php)
<button type="button" id="clickMe">CLICK ME TO RUN PHP</button>
<pre>
<?php
echo $_GET['myString'];
?>
</pre>
myString doit s'afficher dans le <pre> balises une fois que vous cliquez sur le clickMe div/bouton. Il ne le fait pas.
OriginalL'auteur Nolski | 2012-08-22
Vous devez vous connecter pour publier un commentaire.
Ne comprennent pas
=
dans vos données, les noms de variables (juste dire'myString': scriptString
)Toujours inclure la méthode de soumission du formulaire pour
$.ajax
(method: 'get'
)Dans le code PHP, au lieu de
$myString
, utilisez$_GET['myString']
Envisager d'utiliser un
<button>
au lieu d'un<div>
pour envoyer les données au serveur, ce qui est plus standard.Mais le plus important:
success
fonction dans le$.ajax
options qui fait quelque chose avec les données du serveur.Essayez ce code:
(JavaScript)
(PHP et HTML)
Noter que le code PHP va maintenant faire des choses différentes en fonction de savoir si ou non il est le traitement d'une requête AJAX. Pour les requêtes AJAX, vous ne voulez pas rentrer le code HTML de la page - seulement les données qui vous intéressent. Pour cette raison, il pourrait être préférable d'avoir deux pages: une
index.php
page, et uneajax.php
page qui traite les requêtes AJAX.Aussi, dans ce simple exemple, vous pourriez avoir simplement utilisé un simple formulaire HTML, qui ne nécessite pas de JavaScript ou de l'AJAX.
success
fonction de faire "quelque chose" avec les données renvoyées.Ouais, le passage que d'un paramètre ou d'aide .fait(succès)
Le truc, c'est quand je l'écho de données (qui il le ferait sur le clic du bouton), il apparaîtra dans le <pre> balises droit? Ou est-il une commande que j'ai besoin pour s'exécuter dans le PHP pour envoyer les données vers le client?
Derp. Merci Matt. C'est les choses simples qui me fait.
Mike - ce n'est pas AJAX fonctionne. Il n'y a aucun moyen pour le navigateur, à savoir que "je viens de recevoir ces données, je vais donc fusionner avec le code HTML existant". Vous devez écrire du code JavaScript pour faire quelque chose avec les données retournées par le serveur. Voir ma réponse mis à jour.
OriginalL'auteur jnylen