Comment lancer une fonction php en ajax?

Comment lancer une fonction php en ajax? - PHP - Programmation

Marsh Posté le 01-07-2013 à 18:40:16    

Bonjour à tous,
 
Je vous expose mon problème.
J'ai un script php qui génère un code barre aléatoire. Pas de problème jusque là.
Si je vais directement sur ma page code.php, le code barre est bien généré et affiché:

Code :
  1. <?
  2. include('pi_barcode.php');   
  3. $bc = new pi_barcode();   
  4. $bc->setCode($code); 
  5. $bc->setType('EAN');
  6. $bc->Prepare_FullCode();
  7. $code_barre = $bc->FULLCODE;
  8. echo $code_barre;
  9. ?>


Par contre, je voudrais que, depuis ma page index.php, le code soit généré dans l'input "code" lorsque je clique sur le bouton.
Le but est d'avoir un formulaire plus complet que j'enverrai par la suite dans la bdd.
Voici la page index:

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. </head>
  6. <body>
  7. <form action="">
  8. <input type="text" name="code" />
  9.     <input type="button" name="generer" value="Générer un code" />
  10. </form>
  11. </body>
  12. </html>


 
Pouvez-vous m'aider pour la bonne démarche car je cale. Suis-je obligé de passer par de l'Ajax? merci de bien vouloir éclairer le débutant que je suis...

Reply

Marsh Posté le 01-07-2013 à 18:40:16   

Reply

Marsh Posté le 01-07-2013 à 19:11:30    

Le principe de l'Ajax ici ca serait de ne pas recharger ta page. A moins que ce soit vraiment ce que tu recherches, ce n'est pas forcement nécessaire de passer par de l'Ajax.
 
Avec un simple traitement de formulaire PHP, tu peux obtenir le résultat souhaité.

Reply

Marsh Posté le 01-07-2013 à 19:13:29    

La réponse est "ça dépend". En fait tu peux faire simple
 

Code :
  1. <?php
  2. include('pi_barcode.php'); 
  3. $bc = new pi_barcode(); 
  4. $bc->setCode($code);
  5. $bc->setType('EAN');
  6. $bc->Prepare_FullCode();
  7. $code_barre = $bc->FULLCODE;
  8. ?>
  9. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  10. <html xmlns="http://www.w3.org/1999/xhtml">
  11. <head>
  12.    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  13. </head>
  14. <body>
  15.    <form action="">
  16.        Code barre : <input type="text" name="code" value="<?php echo $code_barre;?>" disabled/>
  17.    </form>
  18. </body>
  19. </html>


 
et ce code est formulaire.php
 
Sinon, tu peux passer en ajax, mais c'est (un peu) plus compliqué mais pas si horrible que ça avec du jQuery

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
  6. </head>
  7. <body>
  8. <form action="">
  9.     Code barre généré : <input id="ajax_result" type="text" name="ajaxcode" value="" disabled/><input type="button" value="generate" id="ajax_gen_button"/>
  10. </form>
  11. <script type="text/javascript">
  12.     //Ajout du "on_click" sur le boutton
  13.     $('#ajax_gen_button').click(function(){
  14.         //Generation de la requete ajax  
  15.         $.ajax({url:'code.php'}).done(function(data){
  16.             $('#ajax_result')[0].value = data;
  17.         });
  18.     });
  19. </script>
  20. </body>
  21. </html>

Reply

Marsh Posté le 01-07-2013 à 19:54:22    

C'est exactement ça.
Merci beaucoup, j'ai de quoi bien travailler maintenant :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed