6
votes

Demande de demande AJAX à l'aide de JQuery

Je suis nouveau à l'utilisation de JQuery pour la manipulation Ajax et j'ai écrit un script de base pour réduire les bases. Actuellement, je pose une demande Ajax dans le même dossier et je souhaite faire un traitement supplémentaire en fonction des résultats de cet appel AJAX.

Voici mon code: P>

4

<!DOCTYPE html>

<html>

<head>

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

 <style type="text/css">

td {border:none;}

</style>

</head>

<body>



<table width="800" border="1">

 <tr>

 <td align="center">Number To Send<br /><input type="text" id="numSend" size="40%" style="border:2px solid black;"></td>

 <td align="center">Number Returned<br /><input type="text" id="numReturn" size="40%" readonly></td>

 </tr>

 <tr><td align="center" colspan="4"><input type="button" value="Get Number" id="getNum" /></td></tr>

</table>

<script>

$(document).ready(function () {

 $('#getNum').click(function () {

 var $numSent = $('#numSend').val();

 var json = {"number":$numSent};

 $.post("convertNum.php", {"json": json}).done(function (data) 

 {

 alert(data);

 }

 );



 });

});

</script>
</body>
</html>


2 commentaires

Pourquoi voudriez-vous tout garder dans un fichier? Vous devez structuriser votre code. Sinon, vous obtiendrez des fichiers de poulaits avec un code déroutant. Et qu'en est-il de CSS et JavaScript? Voulez-vous aussi avoir tout dans un fichier aussi? Vous pouvez le faire mais je pense que cela ne serait pas élégant.


Steven - assez juste. Le Reaonc, je veux explorer de conserver tous les appels dans un seul dossier, c'est parce que je travaille sur un projet où nous aurons plusieurs pages PHP faisant des appels AJAX, et je tente de déterminer les meilleures pratiques pour la manipulation de cette affaire. Maintenant, je dirai que chaque script qui utilise un appel AJAX comme celui-ci aura un fichier correspondant .Inc incluent-il - peut-être qu'il serait préférable de faire appel à la poste à celui-ci, plutôt que d'utiliser la même page ou un script différent. Je suis dans la phase exploratoire du développement en ce moment et les réponses que je reçois sont énormément utiles.


5 Réponses :


7
votes

Le moyen élégant serait d'avoir un fichier php séparé (!) qui ne produira que le numéro Times 2 partie de votre PHP actuel. Ensuite, vous générez une demande Ajax à partir de votre PHP actuel à la nouvelle PHP séparée.


4 commentaires

Salut Devnull, c'était mon approche originale. J'ai besoin de modifier ma réponse pour inclure cela - merci. J'ai eu l'appel Ajax pointant vers un script PHP séparé, mais je voulais explorer l'idée de tout garder sur une page.


Ensuite, vous devriez aller pour le si ... Vous n'avez pas besoin d'echo HTML, vous pouvez toujours avoir la partie HTML en dehors des sections . Cela fonctionnera également à l'intérieur de PHP si des déclarations!


Intéressant - je n'avais pas considéré cela. Laissez-moi jouer avec mon script d'autres et explorez cela. Merci - je veux laisser cette open pour obtenir d'autres idées à considérer, mais si c'est la meilleure solution, je vais marquer cette réponse. J'apprécie votre contribution.


Après avoir des tests supplémentaires, j'ai décidé que d'utiliser un fichier incluant pour gérer l'appel ou utiliser une instruction si le meilleur moyen d'y aller, avec un forte penchant vers le fichier inclus. Merci tout le monde.



1
votes

note * La meilleure approche consiste à garder des choses comme celle-ci dans un fichier séparé, facilite la lecture et la plus facilité à comprendre, surtout si vous utilisez une bonne conversion de nommage.

C'est une mauvaise approche procédurale, mais ici, je vais :): xxx

ou mieux encore: xxx PS Comme alternative à matrice (); , vous pouvez utiliser quitter (); , ils font tous les deux à peu près la même chose: Terminer une exécution supplémentaire


3 commentaires

des crochets dans la première approche? +1 pour la deuxième


Merci pour la faute de frappe :) n'a pas vu ça


Merci Ghostman. C'était mon approche originale - j'ai fait des modifications à ma question pour préciser cela. Cela fonctionne bien, mais je voulais explorer l'idée d'utiliser la même page pour recevoir l'appel Ajax. On dirait que cela peut toujours être le moyen le plus efficace d'y aller. Merci!



1
votes

Vous pouvez ajouter matrice (); code> après avoir echo le numéro si vous voulez vraiment le garder sur la même page. Cela mettra fin à l'exécution du script. N'oubliez pas d'ajouter des supports autour de l'instruction IF:

if (isset($num)) {
  echo $num['number'] * 2;
  die();
}


0 commentaires

0
votes

Je ne sais pas à quel point cela est efficace, mais vous pouvez faire quelque chose comme: xxx


0 commentaires

2
votes

Je crois Cet article répond à un aspect de ce que vous voyez - l'écho de la page entière de votre boîte d'alerte.

Ensuite, voici quelques bons postes pour obtenir les bases de Ajax:

Un exemple simple

Exemple plus compliqué

Remplir une liste déroulante 2 basée sur la sélection dans Dropdown 1


1 commentaires

Merci de bien vouloir. Toujours bon d'avoir du matériel de lecture et des exemples supplémentaires. J'apprécie votre temps.